xss-tour闯关
Posted kbhome
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xss-tour闯关相关的知识,希望对你有一定的参考价值。
xss-tour闯关
level 1
第一关都很简单,没有任何过滤。直接在url中输入。因为你可以查看页面源代码,他是get请求。
level 2
第二关有一个输入框,尝试写入东西并了解写的东西在前端被放置的地方,查看页面源代码。发现输入的内容会被h2标签包裹,但是他将<>给转义了。但是还有一个input标签值也传递了我输入的内容,所以可以从input下手进行第二次尝试
我们先闭合input标签,构建语句
"><script>alert(‘22‘)</script>
level 3
两个输入位置的<>都被转义了,我们可以使用事件弹窗。但是事件是属性中的,我们在input中改变。
闭合value的单引号。
1‘ onclick=‘alert(1)
按道理这样是可以的,但是没有成功
1‘ onclick=alert(1)//
这样才成功,我也不知道为什么
level 4
value直接去除<>,还是继续用事件,闭合value的引号。
1“ onclick="alert(‘1‘)
level 5
过滤掉了script标签和所有on开头的事件,我们可以尝试使用伪协议a标签,注意同样闭合input和value
"><a href="javascript:alert(‘22‘)
level 6
过滤了script、on事件、href,用str_replace函数guolv,但是又没有过滤大小写了。所以用大小写绕过。
"><SCRIPT>alert(‘22‘)</SCRIPT>
"><a HREF="javascript:alert(‘22‘)
都可以
level 7
他是替换了script、on事件、href为空,那么遇到替换就能想到双写。
"><sscriptcript>alert(‘22‘)</sscriptcript>
level 8
可以看到我添加的内容,被插入在了以下两个位置
两处都转义了script、on事件,并且大写小都被过滤。“也被转义
尝试使用html实体编码
尝试使用其他的编码的形式
对script中的一个字母进行html实体编码
HTML实体编码(HEX)
javascript:alert()
HTML实体编码(DEC)
javascript:alert()
成功
补充:
HTML 实体
在 HTML 中,某些字符是预留的。
在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。
如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。
字符实体类似这样:
&entity_name;
或者
&#entity_number;
level 9
还是老套路,输入然后看代码查找漏洞
对这两出不断尝试发现,script被过滤掉了。并且传入的连接处有验证,必须带有有http://
javascript:alert()//http://
level 10
注入点在地址栏的?name=中,看源代码,这里涉及到一个form隐藏表单的知识点。对于html和js底子不好的我来说,是有些摸不着头脑的,后来查了一下别人写的文章结合自己的一些理解去尝试做这个题目。
首先概念理解,form表单的类型是隐藏的话,他是不会提交的,所以我们从type=hidden下手。
keyword=111&t_link=1&t_history=2&t_sort=1" onfocus=alert(1) type="text"
发现t_sort是可以直接注入的,这是别人贴的poc,先看看
-
keyword:当form表单提交数据时,keyword会替换掉之前原有的参数
-
onfocus:获得焦点触发事件
-
给t_link、t_history和t_sort赋值,并将t_sort的类型改为text文本,这样t_sort就可以提交了。就是这么简单。
level 11
查看源代码,和上一题是一个道理,只不过他新增了一个输入t_ref,自己修改了提交数据参数值keyword,所以我们直接改他的值就好了
- 抓包
- 特这里的referer值就是最后一列的keyword值,我们修改一下
" type="text" onclick="alert(1)
level 12
和上一关同理
-
抓包,发现Agent的值为t_ua的值
-
修改值
level 13
和之前同理,还是先寻找注入点
-
抓包,发现在cookie值中有t_cook信息
-
修改
" type="text" onclick="alert(1);
level 14
Exif是啥???
可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
将XSS写到Exif里(PowerExif)exif是php拓展,如果要用exif_read_data函数要记得开启拓展。
如下DEMO:
`$exif` `= exif_read_data(``‘test.jpg‘``);``var_dump(``$exif``);
在读取的时候就会导致XSS。但是这种情况在真实环境里出现的几率比较小。
几乎没有了,不做这个。
以上是关于xss-tour闯关的主要内容,如果未能解决你的问题,请参考以下文章