文件上传漏洞:通过绕过 Content-Type 限制上传 Web shell
二:找到对图片展示的请求,在上面的filter中type的那一栏找到images,打上勾,然后找到URL为/files/avatars/你的图片名,并将它也发送到repeater。上传,如果尝试直接上传php文件,会出现报错的情况,我们从包中文件的名字和内容,但type仍然是原来的image/png或image/jpeg,所以成功绕过了该限制。我们回到刚刚图片展示的请求,将原来的图片名改为expl
题目:该实验室包含一个存在漏洞的图片上传函数。该函数试图阻止用户上传非预期类型的文件,但需要依赖检查用户可控的输入来验证这一点。
一:我们首先进入实验室的主页面,找到自己的账户登入后,修改自己的头像(已知存在图片上传漏洞)并同时打开浏览器插件和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/jpeg或 image/png上传,如果尝试直接上传php文件,会出现报错的情况,我们从包中文件的名字和内容,但格式仍然是原来的image/png或image/jpeg,所以成功绕过了该限制。
更多推荐



所有评论(0)