¶0x01 前言
大佬给了个上传点,说是这个点足够写一篇教程了,遂尝试一下,看自己得行不。
上传点如下:
https://subdomain.target.com/UpLoad/UpLoad.aspx
访问之,302跳转到User_Status
阅读本篇文章能了解到:上传, getshell
¶0x02 猜测参数
没有任何功能点,显然是需要猜参数了,与其说是猜测不如说是构造,使用通用表单上传参数
1  | Content-Type: multipart/form-data; boundary=--------1036030574  | 

显然response并无变化,也没有上传成功的提示,更换几个常用的name,filename后一样无果
无头苍蝇般的猜测显然不行,查看源码找找有用信息
并无有价值信息,进一步查看js,jquery忽略不看,直接看第二个comfun.js

随便翻翻,果然发现点有用的东西,函数UpLoadPic

直接访问/UpLoad/UpLoadPic.aspx,一样302跳转到User_Status

尝试把函数中的参数全部构造成表单提交
1  | ----------1036030574  | 
上传页面出现了

果断上传asp,提示白名单

iis8.0 并无解析漏洞,随便试试,爆出绝对路径D:\web_root\UpLoad,不知是否有用,先留着

继续fuzz,发现无法绕过,就连白名单的jpg都无法上传,经过多次fuzz,txt可上传,并返回文件名

根据上述绝对路径,直接加在/upload/,得到相对路径

¶0x03 getshell
经测试,该上传点白名单无法绕过,遂放弃,另辟蹊径
继续回头看js,函数UpLoadPic下还有函数UpLoadFile

同理构造表单上传,看到档案格式不限,感觉希望来了

直接梭哈asp

哦豁,getshell!

¶0x04 总结
该篇重点在于构造表单参数,在扫到一些上传页面无按钮时不要放弃,猜测参数有时能一击必杀
另外header中boundary=--------1036030574不可缺少,表单分割线要保持一致
至于后面的就是找对功能点,任意上传了。