Ну вот, заканчивается это замечательное лето (надеюсь, у вас оно тоже было замечательным), и похоже пасмурная осень не заставит себя долго ждать. Ну что ж, значит пришло время вернутся к своему ноуту и продолжить изучение интересующих меня вещей из мира ИТ. А это означает, что в этом бложике начнут, наконец, появляться новые заметки. ( : Начну я, пожалуй, с тех вещей о которых я все хотел, но забывал/забивал написать в течении последних нескольких месяцев.
Итак, это было небольшое лирическое отступление, а теперь перейду непосредственно к теме заметки.
Когда я описывал в заметке Self-contained RFI in PHP способ использования wrapper'а php://filter для кодирования php-кода веб-шелла, я упустил из виду одну интересную возможность, которую может дать использование этого wrapper'а при наличии RFI в коде атакуемого сайта, но невозможности эксплуатации уязвимости как RFI, а только как LFI, из-за allow_url_include = Off.
Иногда вместо выполнения php кода при инклуде, может оказаться полезным не выполнение, а чтение файла, содержащего php-код. А чтобы php-код не выполнился, мы можем закодирвать его с помощью php://filter. Например:
http://vuln.site/?lfi_here=php://filter/read=convert.base64-encode/resource=index.phpЗатем остается лишь перекодировать выведенный закодированный base64-кодировкой текст обратно в php-код. Не забывайте только, что php://filter доступен в версиях PHP => 5.0.0.
Узнал я об этом трюке пару месяцев назад из заметки в блоге pragmatk'a. Если вам это пригодилось - шлите респекты ему. Да, и отдельное спасибо Qwazar'у за то, что напомнил мне об этом. ( ;