level-6
老样子,在输入框使用
<script>alert('xss')</script>
进行尝试
输入框显示为
<scr_ipt>alert('xss')</script>
查看源码
会发现和Level-5很相似
尝试用"onfocus=javascript:alert('xss') "
果然在value参数值处
"o_nfocus=javascript:alert('xss') "
再就是尝试构造a标签再尝试利用a标签的href属性执行js代码?keyword="> <a href=javascript:alert('xss') > xss</a>
并没有弹窗
查看源码
发现
hr_ef
卡住了。。
继续参考师傅们的博客
这里是对href
进行大小写绕过,构造
?keyword="> <a hREF="javascript:alert('xss')">xss</a>
注:这里值得一提的是因为我们改动的是<a>标签中的href属性的大小写,而在html中对大小写是不敏感的。因此在浏览器端我们的恶意代码才能成功执行。
点击xss即可弹窗
源码
level-7
老样子,先用
<script>alert('xss')</script>
进行尝试
发现输入框只显示<>alert('xss')</>
,script
被过滤
尝试
"onfocus=javascript:alert('xss') "
果然也被过滤value=""focus=java:alert('xss') ""
会发现onfocus
变成了focus
,javascript
变成了java
先试试大小写"ONfocus=javaSCRIPT:alert('xss') "
失败
这里再尝试一下双写绕过"ononfocus=javascriptscript:alert('xss') "
失败。。
双写没有成功???
当时卡住了。。
之后又查看了师傅的博客,发现是构造双写的方式不对。。
要这要构造
?keyword="oonnfocus=javascscriptript:alert('xss') "
点击输入框后成功弹窗,有一说一这样构造双写的方式确实长见识了
源码
level-8
会发现提交的
nice trry!
会被插入到value
的参数值里和a标签的href
属性值里
使用<script>alert('xss')</script>
尝试
发现
value
中<和>被编码,href
中script
被插入了_
尝试使用特殊事件onfocus事件
?keyword="onfocus=javascript:alert('xss') "
照样不行
尝试大小写后发现还是不行
不会了。。
师傅们的方法是对提交的js代码javascript:alert('xss')
进行Unicode编码
javascript:alert('xss')
编码为
javascript:alert('xss')
但是我没有成功。。编码也没有问题
附上源码
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{
confirm("完成的不错!");
window.location.href="level9.php?keyword=not bad!";
}
</script>
<title>欢迎来到level8</title>
</head>
<body>
<h1 align=center>欢迎来到level8</h1>
<center>
<form action=level8.php method=GET>
<input name=keyword value="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;">
<input type=submit name=submit value=添加友情链接 />
</form>
</center><center><BR><a href="javascript:alert('xss')">友情链接</a></center><center><img src=level8.jpg></center>
<h3 align=center>payload的长度:129</h3></body>
</html>
Level-9
进到第九关
看起来和上一关类似
使用<script>alert('xss')</script>
尝试
<和>被过滤
href
中直接显示"您的链接不合法?有没有!"
那就再尝试一下特殊事件"onfocus=javascript:alert('xss') "
"
被过滤
还是不行。。
又没思路了。。
还得参考师傅的博客
尝试到这里后,师傅的思路是:既然这里说链接不合法那么我们就提交一个合法的链接看看效果
额。。
我也不知道为啥还是这。。不应该正常才对吗???
可以了可以了,原来是
http
不是https
猜测这里可能对url地址做了匹配。只有包含正常的url地址才能添加到href属性值中
构造javascript:alert('xss')http://www.baidu.com
发现语句虽然显示在了
href
中,但javascript
被插入了_
尝试大小写绕过,会发现并不行
再来试试关键字javascript:alert('xss')
编码
(需要注意的是,在alert(‘xss’)与http://www.baidu.com之间需要插入//)
这次应该可以成功,但我还和上关一样,还是不行。。
7.24