题目:该实验室包含一个存在漏洞的图片上传函数。该函数试图阻止用户上传非预期类型的​​文件,但需要依赖检查用户可控的输入来验证这一点。

一:我们首先进入实验室的主页面,找到自己的账户登入后,修改自己的头像(已知存在图片上传漏洞)并同时打开浏览器插件和Burpsuite

上传完成后,在proxy里面找到URL为/my-account/avatar(avatar是头像的意思),将该请求发送到repeater中:该请求是对图片内容的获取(红色的为图片内容)

二:找到对图片展示的请求,在上面的filter中type的那一栏找到images,打上勾,然后找到URL为/files/avatars/你的图片名,并将它也发送到repeater

三:我们的目的是获取用户名为Carlos秘密内容的脚本,所以我们将刚刚对图片内容获取的请求中的‘filename’改为:expolit.php,内容全部删掉,改为::<?php echo file_get_contents('/home/carlos/secret'); ?>;这里可以尝试一下直接发送expolit.php文件,结果发现无法上传,知道此处存在对文件格式有限制看到response中显示200,表示上传成功;

我们回到刚刚图片展示的请求,将原来的图片名改为exploit.php,发送完,response显示200,并展示了我们所需要的密钥:如图总结一下:这里的content—type是对上传文件格式的限制,只允许上传 MIME 类型为image/jpegimage/png上传,如果尝试直接上传php文件,会出现报错的情况,我们从包中文件的名字和内容,但格式仍然是原来的image/png或image/jpeg,所以成功绕过了该限制。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐