目录
xss-labs
level1
观察三处箭头,可以发现它是向服务器提交了一个name参数,值为“test”,从页面
回显来看,将neme参数的值显示在了页面上,并且显示了name参数值的字符长度
接下来,查看源码
他将name的参数值放到了<h2></h2>之间
将name的参数重新赋值:<script> alert('xss')</script>
level2
与第一关相比,增加了“输入框”和“搜索”
使用第一关的方法
发现不成功,查看网页源代码
可以看到在<h2> </h2>
标签之中的恶意代码被编码了。其中<
和>
都被编码成了html字符实体。
要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。将keyword的参数值重新赋值"><script>alert('xss')</script>//
左边的">去闭合原先的"
右边的//去注释原先的">
level3
尝试制造弹窗
报错了,查看网页代码
箭头所指的两处都将<>字符编码成了html字符实体
查看level3.php的代码
发现这两处都使用了htmlspecialchars()
函数进行了处理。
构造代码:level3.php?keyword='onfocus=javascript:alert('xss') > //&submit=搜索
发现没有直接弹窗,这是因为onfocus事件的特殊性造成的
onfocus 事件在对象获得焦点时发生。
onfocus 通常用于 <input>, <select>, 和<a>.
最简单的实例就是网页上的一个输入框,当使用鼠标点击该输入框时输入框被选中可以
输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此
点击当前页面的输入框就可以完成弹框了。
level4
上弹窗代码测试一下
输入框中与我们提交的参数值有出入,
<
和>
没有了
查看网页源代码
箭头1处直接将<
和