news 2026/9/12 3:37:20

xss漏洞 xss-labs部分关卡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
xss漏洞 xss-labs部分关卡

Web应用程序对用户输入的数据未进行严格过滤或转义,导致攻击者能将恶意脚本注入到网页中,并被浏览器执行。

常用手段,若没有任何过滤可以采取

<script>alert(1)</script>

部分可能需要js符号闭合,则采取

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

会过滤script,但未存在大小写过滤,则可采取

<Script>alert(1)</Script>

会有大小写过滤,且会过滤script,未有重写法过滤,则可采取

<Scrscriptipt>alert(1)</scrscriptipt>

若过滤了实体转义的空格,则可用回车代替

<a%0Aherf=javascript:alert(1)>

若存在html实体转义,则可采取事件监听

常用事件监听方法

  • 错误触发:

    <img src=x onerror=alert(1)>
  • 链接点击:

    <a herf=javascript:alert(1)>
  • 鼠标移动:

    onmouseover="alert(1)“

第一关

第一步:观察环境

url:http://xss/level1.php?name=test

页面显示:

第二步:查看源码(按F12)

第三步:构造payload

<script>alert(1)</script>

即可验证是否含有xss漏洞

第二关

第一步:观察环境

url:http://127.0.0.1/xss-labs-master/level2.php?keyword=test

页面显示:

输入

<script>alert(1)</script>

结果没有显示,查看源码发现

输入符号明显发现做了过滤,但是没有完全过滤<>那就直接闭合value参数执行XSS语句

输入"><script>alert(1)</script>"即可

第三关

输入“><script>alert(1)</script>”源代码显示

采用第二关方法是可行的,但是彻底过滤了<>,那就不采用script,转为使用javascript的onmouseover属性

输入' οnmοuseοver='alert(1)

因为源代码使用了htmlspecialchars函数过滤输入,把预定义的字符转换为 HTML 实体。

第四关

输入“><script>alert(1)</script>”,显示

发现<>变为空格,但可以闭合value值,在输入" οnmοuseοver="alert(1)即可

第五关

输入<script>alert(1)</script>,代码显示

则script过滤为scr_ipt,输入" οnmοuseοver="alert(1),代码显示

则onmouseover也被过滤,那就采用闭合+超链接,输入"><a href=javascript:alert(1)>",然后点击超链接即可

第六关

输入<script>alert(1)</script>,代码显示

则script过滤为scr_ipt,输入" οnmοuseοver="alert(1),代码显示

则onmouseover也被过滤,那就采用闭合+超链接,输入"><a href=javascript:alert(1)>",代码显示

发现超链接长度不够爆破,那就采用闭合+大小写混用方式,看过滤是否严格,输入"><scRipt>alert(1)</scRipt>"即可

第七关

输入“><script>alert(1)</script>”,代码显示

则script完全过滤为空,输入"><scRipt>alert(1)</scRipt>",代码显示

则大小写混用也被过滤,那就采用闭合+复写看是否过滤script,输入"><scscriptript>alert(1)</scscriptript>"即可

第八关

发现超链接点击进去看到

输入的值即为herf值,考虑让连接中包含javascript的伪协议来运行alert(1)进行弹窗达成xss攻击,则输入javascript:alert(1),再点击超链接显示

script再次严格过滤,那就考虑把语句改为unicode编码看是否能绕过,输入ascii码转unicode语句即可

第九关

也是包含超链接,那就直接输入javascript:alert(1),显示

被转义了,在采用上轮输入发现也被转义,默认输入也被转义,那就看直接的http协议是否能访问,输入http://www.baidu.com发现可以,那就先将上轮输入转义再在后面注释掉http协议即可

第十关

在url的keyword=后输入1,再看源码发现隐藏表单,那就将隐藏表单的type改为text让我们能看到回显

在keyword=后输入123&t_link="type="text&t_history"type="text&t_sort="type="text,多了个输入框,且源码变为

说明仅接受t_sort的值,那就在t_sort文本框输入t_sort="type="text" οnmοuseοver="alert(1)即可

第十一关

在url的keyword=后输入123,再看源码发现隐藏表单,那就将隐藏表单的type改为text让我们能看到回显

在keyword=后输入123&t_link="type="text&t_history"type="text&t_sort="type="text&t_ref="type="text,发现失败,因为双引号被过滤了,但是t_ref参数,这个参数有点像http的请求头的refer值。

隐藏表单确实有值,那就跟之前一样闭合,打开hackbar,点击load url,再勾选referer,将referer:后内容改为"type="text" οnmοuseοver="alert(1),点击执行后,点击输入框即可

第十二关

前车之鉴,直接看源码

发现这个Ua跟请求头里的user_agent一样,那么就用之前的方法,在hackbar上修改useragent的值:"type="text" οnmοuseοver="alert(1),点击执行,点击输入框即可

第十三关

前车之鉴,查看源码:

发现有个cook类似于请求头的cookie,那就用之前发放,在hackbar上修改cookie的值:user="type="text" οnmοuseοver="alert(1),点击执行,点击输入框

第十四关

页面引用了exif.js,读取图的元数据,包括注释,且没有过滤,因此在图的注释/描述字段上传带有恶意代码的<script>alert(1)</script>,再将该图上传即可

第十五关

稍作尝试发现,本身具有HTML实体编码,把<>实体转义了,直接构造无法执行脚本,F12发现有个ngInclude

相当于前端的include,把返回页面通过innerHTML方法嵌入html页面,加载内部的html时会自动执行其中语句(外部不会执行其中语句)但不会执行<script>标签内容,因此考虑在上传本地页面中添加恶意语句,payload可以构造为

事件报错监听

?src='level1.php?name=<img src=1 onerror=alert(1)>'

或者用户交互事件监听

?src='level1.php?name=<a href="XXXX" onmouseover="alert(1)">把鼠标移到这里</a>'

或者点击超链接

?src='level1.php?name=<a href=javascript:alert(1)>'

第十六关

F12查看源代码发现

test是插入到center标签中,没必要闭合,测试关键字,输入<script>alert(1)</script>

输入<a href="XXX" οnmοuseοver="alert(1)">

发现script和空格都被实体化了,故只能采用用户交互时间监听,不准用空格就用回车%0A,payload为

<a%0Aonmouseover="alert(1)">将鼠标移动到这里</a>

或者

<a%0Aonmouseover="alert(1)">

用户在滑动过程中必定会触碰,更隐蔽

第十七关

F12查看源代码

embed标签定义一个区域,可以放图片、视频、音频等内容,但是当打不开文件时会存在错误区域,可以绑定各种事件,尝试各种标签发现会对<>字符转义为html实体,导致无法执行其中语句,只能采用事件监听,但是注意embed标签不支持onerror事件,故构造payload

%20onmouseover=alert(1)

本关需要使用chrome浏览器,firefox不支持embed标签

第十八关

基本同第十七关,只是将空格转移为了html实体,导致无法执行后续语句,故构造payload

%0aonmouseover=alert(1)

第十九关和第二十关

采用flash触发的xss漏洞,但目前已经全面停用,暂且难以复现后面两关

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 7:36:11

YOLO图像分割实战:从目标检测到实例分割的技术演进与应用

简介&#xff1a;目标检测是计算机视觉的基础任务&#xff0c;旨在定位并识别图像中的物体。其核心原理是通过深度学习模型学习图像特征&#xff0c;生成物体的边界框。随着技术发展&#xff0c;像素级理解的需求日益增长&#xff0c;语义分割和实例分割技术应运而生&#xff0…

作者头像 李华
网站建设 2026/8/30 11:36:45

COM Express Type 6搭配8代酷睿/至强:嵌入式载板设计要点

做嵌入式的朋友应该对 COM Express 不陌生&#xff0c;这几年我陆陆续续用 COM Express Type 6 模块做了好几个项目的核心计算板&#xff0c;从医疗内窥镜到轨道交通人机交互单元都碰过。最近一次选型&#xff0c;客户点名要 8 代 Core 或 Xeon 芯片&#xff0c;说是因为算法库…

作者头像 李华
网站建设 2026/9/2 16:57:26

PruneRAG:解决RAG系统证据遗忘与效率问题的创新框架

传统的RAG系统在处理复杂推理任务时面临两大挑战&#xff1a; 证据遗忘问题&#xff1a;随着推理链的深入&#xff0c;早期检索到的关键证据信息在后续步骤中被稀释或遗忘效率问题&#xff1a;无控制的查询扩展和冗余检索导致高延迟和计算成本如图所示&#xff0c;传统多轮RAG方…

作者头像 李华
网站建设 2026/8/30 8:09:46

具身智能落地关键:从Demo到产线的工程化挑战

最近一两年的具身智能热度&#xff0c;大家应该都感受到了。各种机器人公司、AI 实验室、高校课题组&#xff0c;甚至做家电的、做汽车的巨头&#xff0c;都在提具身智能。PPT 里讲的都是“通用机器人”“自主决策”“跨场景执行”&#xff0c;但真正进过工厂、看过产线、跑过 …

作者头像 李华
网站建设 2026/8/30 12:39:00

搭建大模型知识库流程,以及基于langchain实现大模型知识库案例

前言 “ RAG检索增强生成是为了解决大模型知识不足的问题 ” 大模型主要面临三个问题&#xff1a; 垂直领域内的知识不足‍‍‍‍‍ 大模型知识有时间限制‍ 大模型幻觉问题 第一个问题产生的原因是因为&#xff0c;没有经过垂直领域数据训练的大模型普遍表现不好&#xff1b;其…

作者头像 李华