DVWA—File Upload实例复现
1.low等级
源码分析,在low等级中它没有对我们上传的文件做任何的限制操作,所以我们可以直接上传包含执行shell的payload上传就可以了
使用在网上查找到的shell指令的代码然后将文件格式改为php并上传文件,然后在提示的路径中去访问我们上传的路径
可以看到我们已经成功上传并且执行了文件内的代码,我们可以使用蚁剑工具进行查看是否连接,编辑数据并测试可以看到能够连接并且打开能够查看目标主机中的所有数据内容。
2.medium等级
源码分析课看到相对于low等级,medium等级增加了对于文件类型的判定即判定传入的类型是属于jpg或者是png文件
当然我们需要知道在主机中是无法执行png文件中的代码的所以我们需要使用burpsuite工具抓包将传入的filename值的png改成php后缀然后放行数据包。就可以看到我们将上传的2.png文件改为2.php文件了,然后按照同理我们再次使用蚁剑进行连接就可以连接到目标主机了
3.high等级
在high等级源码中,源代码是将上传的文件的类型进行文件头的识别,就是利用了strolower函数将jpg、png类型文件头进行识别如果不是该文件头的文件就直接过滤掉,所以我们需要将我们的payload放置于一个合理的正常图片中。原理就相当于是图片隐写在图片中嵌套想要执行的代码。
我们去网上或者其他途径找一个正常的图片文件,然后使用代码将包含payload的php文件内容镶嵌进png文件中并生成新的png文件。然后进行上传
4.impossible等级
在impossible等级中它对上传文件采用了re-encoding操作让包含php的payload无法让计算机识别从而失去了操作的能力