XSS漏洞
由于时间和篇幅,只做浅析,往后时间充裕了再细细研究
简介
XSS(cross site scripting)跨站脚本为了不与网页中层叠样式表(css)混淆,故命名为xss。黑客将恶意代码嵌入网页中,当客户网文网页的时候,网页中的脚本会自动执行,从而达成黑客攻击的目的。
分类
1.反射型xss
非持久化,一般需要欺骗客户去点击构造好的链接才能触发代码。
2.存储型XSS
他会存储到数据库中,这种xss漏洞危害极大,因为它可以长久的保存在网页中,每个浏览过此网页的用户都会中招,很多xss蠕虫的爆发都是基于持久型xss,一般在留言板,评论区类位置容易出现此漏洞。但存储型XSS不用考虑绕过浏览器的过滤问题,屏蔽性也要好很多。
3.DOM型XSS
全称Document Object Model,使用DOM可以使程序和脚本能够动态访问更新文档的内容,结构及样式。 DOM型XSS是一种特殊类型的反射型XSS,基于DOM文档对象模型的一种漏洞。
挖掘
XSS可以插在哪里?
用户输入作为script标签内容
|
|
用户输入作为HTML注释内容
用户输入作为HTML标签的属性名
用户输入作为HTML标签的属性值
|
|
用户输入作为HTML标签的名字
直接插入到CSS里
测试思路
下面让我们来看一下XSS绕过的测试流程。
现实中,大多数的场所是用的黑名单来做XSS过滤器的,有三种方式绕过黑名单的测试:
1.暴力测试(输入大量的payload,看返回结果) 2.根据正则推算 3.利用浏览器bug 初步测试
(1)尝试插入比较正常的HTML标签,例如:<a>、<b>、<i>、<u>
等,来看一下返回页面的情况是怎样的,是否被HTML编码了,或者标签被过滤了。
(2)尝试插入不闭合的标签,例如:<a、<b、i>、u>、<img等,然后看一下返回响应,是否对开放的标签也有过滤。
(3)然后测试几种常见的XSS向量:
|
|
(4)如果过滤器仅仅是把<script>
和</script>
标签过滤掉,那么可以用双写的方式来绕过:
|
|
这样当