在开始XSS-challenge-tour前我们先学习一下XSS,XSS是一种利用网页在开发时留下的漏洞,输入javascript等代码完成所想完成的事情,在 XSS中要注意两点 1、输入 2、输出 ,输入就是在传参之类的传输到HTML代码中,最重要的是第二点输出,这里的输出并不是指在页面中输出是指输入的代码在HTML中输出的位置,在HTML代码中输出的位置闭合标签输出javascript等代码完成自己想要做的事情,在XSS-challenge-tour中只要触发了alert事件就算通关
level 1
XSS-challenge-tour(1-10)
在level1中看到url框中有一个传参,F12看看他是传到HTML代码的那个位置
XSS-challenge-tour(1-10)
在这里看到一个test修改一下url框中的数据看看是不是传输到这里
XSS-challenge-tour(1-10)
可以看到中的数据跟随url框中的数据变化,是传到。这里找到了输入和输出的位置,也没有需要我们闭合的地方直接输入 <script>alert(1)</script>就可以触发alert弹窗。
XSS-challenge-tour(1-10)
输入后就会触发通关弹窗
XSS-challenge-tour(1-10)
level 2
XSS-challenge-tour(1-10)
第二关有输入框,先输入">试试能不能闭合标签
XSS-challenge-tour(1-10)
看这样应该是完成了闭合,这里有两种方式可以触发弹窗,一、利用事件在属性中完成触发 "οnclick=“alert(1)二、闭合标签在输入”>
XSS-challenge-tour(1-10)
** 我用了几点输入框事件在输入完成后几点输入框就可以完成这一关**
level 3 来到第三关
XSS-challenge-tour(1-10)
发现同样也是输入框试试">能不能闭合
XSS-challenge-tour(1-10)
看样子是没有闭合可能" 或者>被过滤了,在试试'>有没有用如果没用的话就可能是都被过滤了
XSS-challenge-tour(1-10)
可以正常显示就是>被过滤了 没办法用
level 4
XSS-challenge-tour(1-10)
** 同样的输入框尝试闭合’>**
XSS-challenge-tour(1-10)
这里并没有闭合但是双引号可以用那还可以使用触发事件完成" onclick=alert(1)
XSS-challenge-tour(1-10)
level 5
XSS-challenge-tour(1-10)
同样都是输入框,先尝试能不能闭合标签
XSS-challenge-tour(1-10)
看样子是">都没有过滤可以直接用
XSS-challenge-tour(1-10)
这里输入触发事件发现on被过滤了,那只好换一个
XSS-challenge-tour(1-10)
使用 level 6
XSS-challenge-tour(1-10)
同样的也是被过滤了on和script,但是不知道是否是大小写过滤可以尝试大写的"><SCRIPT>alert(1)</SCRIPT>
XSS-challenge-tour(1-10)
并没有过滤大写的SCRIPT可以直接通关
level 7 先是输入了"><script>alert(1)</script>
XSS-challenge-tour(1-10)
XSS-challenge-tour(1-10)
发现on和script都没掉了,可能被过滤了,这里可以使用双写来绕过"oonnclick="alert(1)
XSS-challenge-tour(1-10)
** script也是可以双写的scrscriptipt同样也可以绕过 **
level8
XSS-challenge-tour(1-10)
** 第八题在输入代码的时候会传到a的标签中**
XSS-challenge-tour(1-10)
** 可以看到这里on和引号都被过滤了尝试了各种方式都发现被过滤了,但是可以尝试一下unicode编码javascript:alert(1)这是javascript:alert(0)的Unicode编码输入后
XSS-challenge-tour(1-10)
可以看到 a 标签中出现了javascript:alert(0)点击链接进入下一关 level 9 跟第八题同样的过滤只不过在友情链接中有一个//http://在unicode编码后加上即可javascript:alert(1)//http://
XSS-challenge-tour(1-10)
level 10 进入第十题可以看到并没有输入框了,查看网页源代码
XSS-challenge-tour(1-10)
input标签的隐藏方式有三种 和以上两种方法可以实现不留痕迹的隐藏。第三种方法可以实现占位隐藏(会留下空白而不显示)。可以在type=“hidden"前面加一个type=”"让输入框出现,但是在哪输入呢,其实在第一题中有在url框中进行传参,在这里我们看到了三个标签的的name同样的也可以在url框中进行传参?t_link=1&t_history=2&t_sort=3
XSS-challenge-tour(1-10)
XSS-challenge-tour(1-10)
发现只有t_sort显示了数值,我们就可以在这里进行闭合的输入?t_sort=" type=""
XSS-challenge-tour(1-10)
XSS-challenge-tour(1-10)
出现了输入框点击一下
XSS-challenge-tour(1-10)
成功地完成了前十题XSS
|