XSS & SQL注入(3)
scriptalertdocument.cookie/script
或者 <<<script>>>alert(document.cookie)<<</script>>>
他们可能替换2对来欺骗你,或者替换一些字母.试着用你自己的方法来利用...你输入:
<script>alert(document.cookie)</script>
输出像这样:srplert(document.cookie)srp
仔细观察,你就会发现document.cookie中并没有什么被替换.为什么呢? 因为他们并不清楚你想要alert什么,以及你想做什么.所以他们只是猜测,就只阻止了"<>"以及script部分.怎么绕过?看看这个:
<<sccriiptt>>aalert(document.cookie)<<//sccriiptt>>
所有重复多余的部分刚好被替换!现在让我们来点更高级的!
这次他们使用的仍然是替换,但是却检查了整个字符串!例如:
<script>alert(document.cookie)</script>
输出将是:
scriptalert(document.cookie)script
看到这,你激动地说,"我知道该怎么做了!" OK,让我们按照你的方法来重新构造:
<<script>>alert(document.cookie)<</script>>
输出:scriptalert(document.cookie)script. 这时你可能会继续增加更多的<>.可是,他们替换了任何"<>",无论你输入多少个...看到我说"任何"了吗?使用下面这个例子:
<
script
>
alert
(
document
.
cookie
)
<
/
script
>
看看它,它没有替换"<>",它替换代码关键字.所以即便你写的是一句没有"<>"的代码,将仍然被替换,这就是我们为什么这样写的原因.假如对方使用更严格的标准,替换任何类型的代码,甚至是"alert"! 我们又该怎么改进呢?看看这个:
<
c
r
i
t
>
a
l
e
r
t
(
d
o
c
u
m
e
t
.
c
o
o
k
i
e
)
<
/
c
r
i
t
/
>
这下应该可以了,但是如果他们仍然替换"<",你可以增加2对"<< >>"(并且你可以用任何字符取代document.cookie)
还有更多我可以演示的替换,但是我教你的只是想让你发挥自己的创造力.
现在让我来讲讲其他XSS方法.前面我们已经讨论了客户端XSS,那么现在就来看看服务器端XSS.
首先让我说明它们之间的区别.客户端是从你浏览器经解释语言,如JavaScript (JS) VBScript (VBS)等而看到的.服务器端XSS是通过来自服务器端的语言,如php,asp等的XSS.客户端通过浏览器查看,服务器端通过服务器查看.
内容版权声明:除非注明,否则皆为本站原创文章。