0x00 low
后端对上传文件未做任何设置,直接上传即可,现在基本上已经见不到这种漏洞了
上传一句话木马
直接上蚁剑
0x01 Medium
直接上传发现,服务器后端做了一些限制,具体是限制什么并不清楚(虽然我偷懒已经直接看writeup了...)
在burpsuite中修改后缀为jpg,发现不行,仍然提示 image was not uploaded,那就可能不是通过后缀名来限制上传,不然后缀是jpg为什么不让我上传,当然也有可能是做了双重判断(Content-Type+文件后缀名)
将文件名复位为payload.php,然后尝试修改Content-Type 为image/png
上传成功,这里发现只是检测了Content-Type的类型,修改成图片的样式就可以上传其他文件了,Content-type不会影响php的解析
更多关于Content-type的介绍:https://www.runoob.com/http/http-content-type.html
还有一个利用,在php版本小于5.3.4的服务器中,当Magic_quote_gpc选项为off时,可以在文件名中使用%00截断
0x02 High
按照前面Medium的方法无法通过High(废话)
你🐎的,修改了文件后缀名+Content—Type也无法上传成功 ,这里估计是直接用了判断图片的函数,读取图片文件头,获取长宽高等信息。
继续fuzz,发现修改Content-Type为txt/php也可以正常上传,但是无法修改后缀名为php
我直接看writeup,大佬们讲的是上传一张正常的图片然后把一句话木马追加在最后,然后正常上传,最后再拿一个文件包含漏洞解析这张图片中的php代码。
但是我不知道怎么启动Docker中DVWA的 allow_url_include 文件包含的漏洞就暂时跳过了