题目:web进阶之文件上传
查看题目,底下已经给出了源代码:
服务器对文件进行了白名单设置,允许上传zip、jpg、gif、png文件!我随便上传几张一句话木马图片,均能够上传成功,说明他只对文件的后缀进行验证。上传不难,难的是上传后找不到文件的路径,无法访问。
观察关于目录的代码发现,文件上传后,会随机生成一个MD5目录,把文件放在这个地方,但是MD5目录无法预知,所以难度大大的加大。
通过解读zip文件代码可知,通过zip上传后,服务器会对zip进行解压,放在upload目录下,然后如果这个目录下含有非白名单的文件,就会对该文件进行删除,所以一个办法就是把文件解压到upload目录之外
把一句话PHP代码重新命名,shell.php.xxxxx,压缩成1234.zip文件,然后用010 editor打开,修改压缩包内的文件为…/…/shell.php.xxxxx,保存,这样做的目的是为了解压时把文件解压到根目录下。
上传该文件,成功上传,随后访问shell.php文件,即可得到flag。
另一种构想的方法:我记得一句话,根本就没有绝对的伪随机数。这个题目将1000至9999内的数字随机拿出一个进行MD5加密作为目录,那么可已设想,如果我们能够碰撞出该目录,会不会就能够进行访问了?
我写了一段代码,从999到10000进行循环,然后对i进行MD5加密,构造一个目录,然后进行访问,如果有返回值,则说明存在这个目录。
[CTF]web进阶之文件上传
最新推荐文章于 2025-03-23 19:44:35 发布