HTML的< >&"©分别是<,>,&,",©;的转义字符
XML只有5个转义符: < >& " '
HTTP请求中,Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
referer
例如,在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有: Referer=http://www.google.com.
如果服务器要求必须是某个地址或者某几个地址才能访问,而你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进行访问。
xss-labs-master/level1.php?name=
先用进行尝试查看页面源码:可以看到script标签被包裹在input标签里面。script标签不能被嵌套在标签里面,否则触发不了。
payload:
xss-labs-master/level2.php?keyword=">
用">尝试,查看源码:看到script标签直接被转译掉了
页面源码:
payload:
#这里的话onclick后面要用单引号,用双引号的话会被转译掉
用进行尝试,查看页面源码:可以看到script的破折号被删除掉了
payload:
用进行尝试,查看页面源码:可以看到在script中间加了下横线
用onclick尝试,发现也被过滤掉
构造a标签,跳转超链接进行尝试
payload:
input name=keyword value="">点我惊喜">
用进行尝试,查看页面源码:可以看到在script中间加了下横线
用onclick尝试,发现也被过滤掉
用大小写尝试的时候发现没有过滤
payload:
">
用进行尝试,查看页面源码:script直接被删除掉了
用onclick进行尝试,发现on被过滤掉,双写on进行绕过
payload
" oonnclick="alert(1)"
用进行尝试,查看页面源码:可以看到script标签被转译掉了,还有<>也被过滤掉了
用onclick进行尝试可以看到onclick也被转译掉了
但是此时也可以看到我们的代码时写在超链接里面的
尝试直接在超链接构造js函数,但是可以看到js也直接被过滤掉了
友情链接
对javascript:alert(1)进行unicode编码
网址:http://www.jsons.cn/unicode/
payload:
javascript:alert(1)
用进行尝试,查看页面源码:可以看到script标签被转译掉了,还有<>也被过滤掉了,双引号也被过滤掉了,用onclick肯定是不行的
试了好几种注入姿势,都提示链接不合法,换一个百度合法地址试一试
换成合法链接进行尝试,发现超链接显示正常网址,尝试拼接js代码:javascript:alert(1);http://www.baidu.com
在这里又发现js又被过滤掉,再次编码进行尝试
友情链接
payload
javascript:alert(1)//http://www.baidu.com
#加上//注释掉后面的正常网址,不然会报错
用进行尝试:过滤掉<>
没有找到和<script>alert(1)</script>相关的结果.
用οnclick="alert(1)"尝试:过滤掉""。单引号可以用
没有找到和οnclick="alert(1)"相关的结果.
查看页面源代码的时候看见还有3个隐藏的标签,尝试将其改成文本框,只有t_sort可以成功
?keyword=&t_sort=" type='text'
payload
?keyword=&t_sort=" type='text' onclick='alert(1)'
跟第十关一样的判断,发现过滤掉:<> ""
跟上一关一样有隐藏值,发现就只有t_sort可以更改成功,但是并没有和第十关一样有一个输入框
?keyword=t_link='' type='text'&t_sort='' type='text'&t_histoty='' type='text'&t_ref='' type='text'
我们在判断的时候发现t_ref改变了,判断他是referer
bp抓包增加一行referer
payload
referer:" type='text' onclick='javascript:alert(1)'
查看源码:和上一关一样,这次的以看就是ua
推测是cookie,带入之前的payload