系统相关
首页 > 系统相关> > 实验室:通过混淆文件扩展名上传 Web shell

实验室:通过混淆文件扩展名上传 Web shell

作者:互联网

前言:
即使是最详尽的黑名单也可能被经典的混淆技术绕过。假设验证代码区分大小写并且无法识别它exploit.pHp实际上是一个.php文件。如果随后将文件扩展名映射到 MIME 类型的代码不区分大小写,则这种差异允许您将恶意 PHP 文件偷偷通过验证,最终可能由服务器执行。

还可以使用以下技术获得类似的结果:


第一步:登录网站,上传文件,该测试网站只允许上传图片类型的文件
在这里插入图片描述
第二步:打开Burp的代理历史记录中,找到POST /my-account/avatar用于提交文件上传的请求。将此发送到 Burp 的“重发器”。
在这里插入图片描述
第三步:我们修改filename参数的值,使用混淆文件扩展名绕过检测。

Content-Disposition: form-data; name="avatar"; filename="e.php%00.jpg"

在这里插入图片描述
第四步:发送请求,提示文件上传成功,接下来在代理历史记录中找到GET /files/avatars/文件名 请求,就可以查看返回的结果了。
在这里插入图片描述
这里之所以会返回“400”,是因为服务器端不存在e.php%00.jpg这个文件,经过编译是以e.php的形式存储在服务器,将它发送到“重发器”修改文件名,重发就可以查看返回的结果了。
在这里插入图片描述
在这里插入图片描述
提交密码,实验完成!

标签:Web,shell,扩展名,文件,URL,文件名,php,上传
来源: https://blog.csdn.net/Loser5/article/details/123611235