目录

练习:

00x0

​编辑

0x01

0x02

0x03

​编辑

0x04

0x05

0x06

0x07

0x08

0x09

0x0A

0x0B

0x0C

0x0D

0x0E

0x0F

0x10


弹窗练习地址:https://xss.haozi.me

练习:

00x0

第一关没什么好注意的,会语句就行。

示例:

1、<svg οnlοad=alert(1)>

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

3、<script>javascript:alert(1)</script>

0x01

此关查看代码,发现输入的值在“<textarea> </textarea>”中:定义多行的文本输入控件。

因此知道输入的表达式将被转换为文本,所以可以先将他闭合,闭合后再输入0x00的语句就行。

示例:</textarea><script>alert(1)</script>

0x02

此关查看代码输入的值在"value"属性中。

于是先闭合使输入语句逃离双引号及尖括号。

示例:"> <script>alert(1)</script>

0x03

查看代码,可以知道该关过滤了“ () ”。

因为“alert”具有“tostring”方法,所以我们采用反引号“ ` ”代替括号。

示例:<script>alert`1`</script>

0x04

查看代码,发现它将“ () ` ”替换为“ ”空。

于是我们想到编码“ () ”试试。

可以发现编码“ () ”并不能成功,因为js中不能编码符号。

如果js不行我们可以转换标签,采用其他表达式,例如:<svg>,<img><a>等于是成功。

示例:<svg οnlοad=alert(1)>

0x05

首先查看代码,我们知道他将注释符“-->”替换为了一个表情。

我们输入的值又恰好在注释符中间,但他替换的注释符并不是我们想要闭合的那一个。

示例:--><script>alert(1)</script>

0x06

查看代码可知,他将autoon.*=或>转换为_。

我们可以采用type="image"的表达式,避免使用 >和换行的方式躲避正则匹配。

示例:type="image" src=1 onerror
=alert(1)

0x07

通过查看代码,使用正则分析  const stripTagsRe = /<\/?[^>]+>/gi

<\/?:需要注意转义符号' \ '与‘ / ’在一起说明将‘ / ’转义,则这部分表示匹配' </ '。

[^>] :' ^> '在' [ ] '中表示匹配“除了' > ' ”。

+>:“+”中为‘和’的意思,表示和匹配‘ > ’

因为html中有纠错功能,单标签如果没有闭合,html会自动帮我们闭合。

示例:<img src="1" οnerrοr=alert(1)

0x08

查看代码,正则中将</style>替换为'/* \u574F\u4EBA */'。

所以我们不能直接闭合,但从前面可以得知,换行可以绕过正则。

示例:<script

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

0x09

查看代码,必须使用http://www.segmentfault.com作为前缀。

但他在<script>标签里面,我们直接输入alert(1)的话并不能弹出,但我们可以在后面接一个自己写的js代码形如。

然后将该文件接入到网址后面。

示例:http://www.segmentfault.com/127.0.0.1/js.js

0x0A

查看代码,可以看出,过滤掉了&,`,",<,>,\,之后再正则白名单匹配。

通过html转义, 把能注入的关键字都过滤了。可以直接引用指定网站下的目录文件来达到xss注入的目的,与第九关类似。

0x0B

查看代码,toUpperCase将所有字母小写替换成大写。

html对大小写不敏感,js对大小写敏感。alert是js中的事件,所以我们需要将alert进行编码。alert-->alert

示例:<img src=1 οnerrοr=aler&#x74;(1)>

0x0C

查看代码,比第0x0b关多限制了将<script>替换成“ ”。

但并不影响<img>标签,所以仍可以使用。

示例:<img src=1 οnerrοr=aler&#x74;(1)>

0x0D

查看代码,发现有行注释符“//”,使用回车,跳一行填写代码。

由于在<script>标签内,我们直接填入alert(1)。

发现并没有反应。仔细查看,原来我们饼没有逃出" ') "的限制,于是我们采用注释符“-->”将后面的符号注释掉便成功了,注意:需要跳行填写注释符。

0x0E

查看代码,发现该表达式过滤了以“‘<’+任意字母”的开头,并且将所有小写字母替换为大写字母。

“长s”源于手写,后来在欧洲文艺复兴时期广泛地被用于印刷术。也就是说我们可以采用“ſ”来代替“s”。又因为js对大小写较为敏感,所以我们可以使用其他标签,例如:<svg>,<a><img>等,但因为alert是js的事件也不能为大写,所以我们需要将它进行编码。

示例:<ſvg οnlοad=alert(1)>     //等于<svg οnlοad=alert(1)>

0x0F

查看代码,发现过滤了部分符号。

该题目对字符进行了html实体编码处理。但是, 它忽略了一点, 由于编码后处于html标签中, 所以当解析代码的时候, 被过滤编码的字符仍然会被还原来执行, 所以可以说, 被过滤的字符可以用。
注入使其闭合, 在注释掉后面的内容即可。

示例:'), alert(1) //

0x10

没有过滤, 随意给window.date一个值,比如空值'', 再注入。

xss.haozi.me弹窗练习0x00-0x10相关推荐

  1. xss.haozi.me通关教程

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

  2. xss靶场、xss.haozi.me靶场详细通关教程

    文章目录 前言 预备知识 HTML编码 img的可拓展 各种payload形式 0x00 0x01 0x02 0x03(使用了正则过滤圆括号) 其它解法 0x04(使用正则过滤圆括号和反引号) 0x0 ...

  3. xss.haozi 思路总结 0x00-0x12

    xss刷题网站2 https://xss.haozi.me/ 一个非常可爱的网站.这是网站界面,题目序号是十六进制,一共19道题. 0x00 直接输入<script>alert(1)< ...

  4. XSS表情包靶场通关记录

    平台 alert(1)https://xss.haozi.me 0X00 源码无防护,直接常规payload绕过 <script>alert(1)</script> <s ...

  5. xss绕过字符过滤_XSS绕过实战练习

    前言 写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下.有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战 ...

  6. 从xss挑战之旅来重读xss(一)

    在开始这篇文章之前,先简单聊几句: xss很多时候是鸡肋,比如说self-xss 很多厂商都会注明拒收反射xss,如58src 遇到请证明危害性的说法就走,人家的潜台词也是拒收反射xss 遇到收反射x ...

  7. XSS漏洞基础学习(笔记)

    包含一些基础的XSS学习. XSS跨站脚本分类 XSS漏洞介绍 跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩 ...

  8. Csrf+Xss组合拳

    各位大师傅,第一次在合天发文章,请多多关照 今年年初的疫情确实有点突然,打乱了上半年的所有计划(本来是校内大佬带我拿奖的时刻,没了,学长毕业了,就剩下我这个小垃圾带着下一届去搞ctf了,难啊,难啊) ...

  9. 小迪安全--xss跨站脚本攻击

    xss跨站脚本攻击 xss原理 危害 pikachu靶场 反射型xss 存储型xss DOM型xss xss平台 cookie和session 利用cookie webshell箱子 xss常见位置 ...

  10. [转]杂谈如何绕过WAF(Web应用防火墙)

    技术分享:杂谈如何绕过WAF(Web应用防火墙) 0×01开场白 这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家. 可能在大家眼中WAF(Web应用防火墙)就是"不要脸& ...

最新文章

  1. JavaScript的函数
  2. HTML表单input类型有哪些,HTML表单之input元素的23种type类型
  3. 【算法知识】详解快速排序算法
  4. C# partial 关键字的使用
  5. 基于数据库数据增量同步_基于 Flink SQL CDC 的实时数据同步方案
  6. Nginx 限制某 IP 在一段时间内对服务器发起请求的连接数
  7. android javap命令生成自定义类签名
  8. hdoj1116【欧拉回路】
  9. 如何给Word中的图片添加题注
  10. pdf拆分成多个文件,方法步骤
  11. 删库跑路 php,程序员删库跑路事件,php中文网的几点声明!
  12. 热点速递 | 超过220家银行加入摩根大通区块链网络;全球IEO项目数已达50
  13. 快递100显示查询错误?快递100快递查询类FAQ
  14. 移动开发利器-Bmob后端云使用体验
  15. xlsm文件格式和xlsm文件打开方法介绍
  16. Add-Migration
  17. 计算机考研评分标准,考研复试评分标准来啦!
  18. 英语3500词(十)adventure主题(2022.1.22)
  19. java小程序体重监测,分享个可以记录体重的小程序,坚持才能瘦
  20. 泸州职业技术学院计算机单招试题,泸州职业技术学院普通类9+3单招考试技能测试考纲...

热门文章

  1. python与ai的关系_Python与人工智能的关系原来是这样的...
  2. python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式...
  3. CDN加速的四大解决方案
  4. Win7 配置 Git 客户端 图文详解
  5. endless admin_认识Endless OS,轻量级Linux发行版
  6. 疫情之下,我们该如何选择工作?
  7. Photoshop抠图(磁性钢笔工具)
  8. Linux CPU使用率超过100%的原因
  9. 【报错】CUDA error: device-side assert triggered
  10. triggered传递参数