文章目录

  • 前言
  • 预备知识
    • 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="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

第二种

使用了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靶场详细通关教程相关推荐

  1. XSS靶场level15详细通关教程

    我的一个朋友这些天在家找工作,利用间隙时间重温一下XSS靶场.可是做到第15关的时候,怎么也无法通关.我这个朋友在15关卡住了2天.最后终于找到了问题的根源.[这个朋友使用的是在线靶场,如果你是自己搭 ...

  2. DVWA靶场Brute Force 暴力破解审计通关教程

    如果你想搭建靶场可以购买蓝易云服务器搭建

  3. iOS上架详细通关教程(提交到AppStore)

    iOS 应用上架流程(提交到AppStore) 1.账号准备 1.1 登录苹果开发者中心 https://developer.apple.com/ ​ 编辑切换为居中 添加图片注释,不超过 140 字 ...

  4. iOS上架详细通关教程

    记录此文是源于以下需求 1.已有app store开发者账号 (公司账号$99),需上架至app store 2.有商城实体商品支付功能(会员等虚拟支付另说) 3.有硬件交互功能 注:建议预留一周上架 ...

  5. vulntarget-b靶场详细通关记录

    vulntarget-b靶场详细通关记录 前言 这个靶场打了好几天才打下来,在上线msf和免杀过火绒还有psexec横向移动中卡了很久.而且这个靶场的通关资料较少,吐槽一下网上的相关文章很多关键步骤都 ...

  6. xss.haozi.me通关教程

    10.xss.haozi.me通关教程 0x00 首先整体浏览网站 分别是xss注入点,注入后的HTML代码以及网页源码 构造常规payload: <script>alert(1)< ...

  7. DVWA通关--存储型XSS(XSS (Stored))

    目录 LOW 通关步骤 源码分析 MEDIUM 通关步骤 源码分析 HIGH 通关步骤 源码分析 IMPOSSIBLE 源码分析 存储型XSS也叫持久型XSS,从名字就知道特征是攻击代码会被存储在数据 ...

  8. DVWA靶场通关教程

    目录 Burt Force(爆破) (low) (medium) ​(high) (impossible) Command Injection(命令执行) (low) (medium) (high) ...

  9. Upload-Labs靶场 1-21全通关教程

    Upload-Labs通关 靶场介绍 安装 文件上传漏洞介绍 BurpSuite的简单使用 安装BurpSuite 配合Firefox使用 万能WebShell 正文开始 Pass-01 Pass-0 ...

最新文章

  1. java7 javascript引擎_Java7中脚本引擎的一般用法,共三种方法获得JavaScript引擎:名称、文件扩展名、MIME类型 | 学步园...
  2. Ecplise中的Maven项目提示找不到jar包
  3. 部署App-V Client,应用程序虚拟化体验系列之三
  4. python自动化办公知识点整理汇总_Python自动化办公知识点整理汇总
  5. 【进阶修炼】——改善C#程序质量(9)
  6. mysql 矩表_mysql表某相同值最近一次出现的间距
  7. 【PLC】PLCPAC入门教程
  8. python3爬虫实战-requests+beautifulsoup-爬取下载顶点网站的小说
  9. 阿里立秋:淘宝如何做智能化UI测试?
  10. 【前端】使用html+css+js实现的乞丐版跳一跳
  11. Android 虚拟分区详解(三) 分区状态变化
  12. git log 详解
  13. Oracle_1th_查询语句
  14. Java实验:重写equals方法
  15. 使用XML的方式导出EXCEL
  16. 银河麒麟系统安装失败
  17. librosa与python_speech_features
  18. 如何在路由器上做端口映射
  19. win10计算机文件夹选项在哪里,win10 文件夹选项_win10文件夹选项在哪里
  20. Java注解编译期处理AbstractProcessor详解

热门文章

  1. ViewPager和SwipeRefreshLayout之间嵌套使用时发生事件冲突
  2. 为者常成,行者常至(进步、收获、成长、自信)
  3. Python书籍阅读与记录 6.10 II 变量和简单数据类型
  4. 欧科云链研究院:当硅谷银行闪崩,稳定币也难以“稳定”
  5. ppt翻译效率不高,快试试这几种方法轻松翻译
  6. JDK、IDEA安装步骤
  7. 前端面试题(四方伟业)
  8. 蓝桥杯 - 算法训练 安慰奶牛 (Kruscal最小生成树+技巧)
  9. JS获取端口、协议、域名
  10. 改变世界的十大地理学思想