File Upload
File Upload(文件上传),Web应用程序的安全漏洞,如果应用程序未能正确验证和限制用户上传文件的类型、大小和内容。攻击者可以通过构造特制的文件来绕过这些验证,上传包含恶意代码的文件,并在服务器上执行恶意操作。
Low
可以看到代码没有验证上传文件的类型,代码没有限制上传文件的大小。

我们使用cobaltstrike创建一个Windows可执行程序的后门上传。(正常情况下会直接被window安全中心拦截隔离,这里做测试用,先允许此后门的存在)

我们顺着这个目录去找这个文件, 可以看到确实上传成功了

随后,我们在cs的客户端就可以查看,进行会话交互、提权、浏览探测。

Medium
这里对文件类型和大小进行了验证,仅允许大小为100000
字节的 JPEG 和 PNG 类型的文件上传.
我们在上传时使用先将文件的后缀修改为png,然后在burp中抓包修改文件后缀即可上传成功。

High
代码在文件上传方面做了一改进,包括文件类型验证、文件大小限制、以及通过 getimagesize()
函数进一步验证文件是否是图片。
所以我们使用图片木马+文件包含来实现上传

将木马文件的内容复制到图片上面,通过上传图片,把木马传进去。
使用 copy
命令,通过 /b
选项将二进制文件合并,/a
选项将文件连接在一起。
将 test.png
和 shell.txt
合并成一个新的文件 new.png
。

上传文件new.png 上传成功

此时 我们利用 file inclusion的漏洞加载图片,成功解析,此时可以使用蚂剑或类似的工具进行连接,此处不做演示
