DVWA文件上传漏洞(完结)

当选择中级防御的时候,再像低级防御那样直接上传PHP脚本,发现不给上传了。

那么,作为攻击者,又不知道网站源码是什么,该怎么办?

只能简单分析一下几种情况,分析网站过滤的机制。

比如:(只是猜测)

1.网站开发者,根据文件名后缀来过滤。那么,作为攻击者就可以修改数据包中的文件名来尝试上传。

2.网站开发者根据上传文件的类型来判断,将不符合规定类型的过滤掉。那么,攻击者是不是可以通过修改数据包的文件类型来欺骗,达到上传文件的目的呢?

3.网站开发者根据文件名后缀,文件类型,文件大小(图片文件大小肯定有个范围)进行过滤。那么攻击者该如何思考?

在不知道源码的情况下,只能尝试各种可能,来绕过网站开发者的过滤机制。

由于,修改文件后缀会使得我们的脚本不能正常运行,所以,我就修改了文件类型为image/jpeg,提示上传成功。然后weevely连接上传的后门。

再次成功

虽然修改了类型就上传成功了,但是一个漏洞里面可以学到的东西太多了。因此,我抓包来比较,为什么jpeg文件上传能成功,原本的php脚本必须得修改类型才能上传成功。

未经修改的PHP后门shell
能上传的图片
二者数据包的比较

凡事两个包不同的地方,都被标注了出来。那么就是说,只要将数据包做一些修改,就有很大的可能性上传成功。

既然已经成功上传后门,并且连接上去了,那么接下来,就要查看网站开发者的源代码了,来看一下网站开发者到底存在什么失误,使用了什么逻辑,才导致攻击者乘虚而入。

逻辑很简单,就是看你类型是否满足要求,大小是否满足,只要满足这两点,就可以上传。因此,攻击者修改了数据包的文件类型后,就上传成功了。


现在,我将防御等级调成高级防御。然后,我依旧利用这种小方法,修改我的数据包类型,去欺骗他,但是,这时候发现,上传失败了。意思就是说,修改类型这一招对高级防御不管用。

至于为什么不管用,得看高级防御代码是怎么写的。这个后面再解析。但是,现在就有这么一个套路,将一个后门文件追加到正常的图片文件后面,相当于融合到图片文件后面,然后再去上传图片文件。

命令:
cat file1 >> file2    将file1内容追加到file2后面

可是!上传的图片文件无法执行shell的作用。。。就相当于file.php.jpeg这样的文件格式。无法当做php脚本运行。难道这就没用了吗?不,依旧有用。只不过需要相关的命令注入漏洞来利用!

比如说,我这个特殊的图片文件上传成功了,我虽然目前无法使用,但是只要管理员不删除我这个文件,那么这个隐藏的炸弹始终存在,只是差了一个引爆器。什么是引爆器?就是类似命令注入漏洞这样的引爆器,若是又找到了命令注入漏洞,那么就可以利用命令注入来修改我们上传好的PHP脚本,使他成为真正的PHP后门脚本。这样,再利用weevely来远程连接即可。(理论上可行,实际上还需要其他的辅助手段,本人新手,还未接触)

但是,但是防御者有一个非常非常好,还不用进行代码审计的办法。那就是权限设置!只要防御者将上传的文件目录权限,全部改成只读,那么即使上传了脚本又能如何?完全无法运行。不过,估计这样会影响网站的运行。(猜测)

最后,解析一下高级防御漏洞的源代码:

扩展知识:fckeditor 漏洞   对于上传漏洞的一种扩充知识,可以让上传漏洞学得更好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 4,889评论 0 4
  • 文件上传漏洞: 1.本地验证 本地验证:客户端本地通过前台JS脚本进行检测。 原理: 当用户在客户端选择文件点击上...
    xaviershun阅读 5,208评论 0 1
  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 9,706评论 0 5
  • 一、初步认识 1.上传功能:网站上各种可以上传文件,图片的地方可以被用作上传点进行非法上传 2.上传原理:在前端代...
    楠昭阅读 5,659评论 1 11
  • 开年立下重誓,本年度要好好锻炼身体,于是乎,没过正月十五就屁颠跑去办了健身卡,然后开始了跑步生涯,过去的一个月...
    无名筱卒阅读 3,165评论 0 3

友情链接更多精彩内容