一、原理

XSS-跨站脚本攻击,依靠一切可能的手段,将浏览器中可以执行的JS代码植入到Web界面中去,从而对客户产生攻击,该漏洞经常出现在需要用户输入的地方,这些地方一旦对输入的内容不进行处理,攻击者就可以进行HTML注入,进而篡改网页。

二、产生条件

1.可控变量

2.变量被输出

3.没有过滤或者过滤不严谨

三、分类

反射型XSS: 非持久化,一般需要用户手动点进去攻击者伪造好的连接才能触发代码

存储型XSS:持久性,攻击者的XSS语句存储在服务数据库,当有受害者访问这个网页都会触发代码,一般在留言板,评论区页面经常出现。

DOM型XSS:DOM型xss与上面两种最大的区别就是,dom型xss漏洞是基于文档对象模型(Document Objeet Model,DOM)的,它不需要经过后端,它是在浏览器解析渲染服务器源码的时候产生的,所以我们在抓包的过程中是看不到dom型xss有关的内容的。

四、以pikachu靶场环境示例

1.反射性XSS:在没有过滤的情况下使用在提交参数中插入XSS语句,页面会出现一个弹窗,并且再次访问该页面时网站不会出现弹窗。
2.存储型XSS:代码会存储在数据库中,访问该网页会一直触发XSS代码。
3.DOM型XSS:可以看到我们输入的参数使用burp抓包没有抓到,说明DOM型XSS,只在前端产生。

五、推荐工具:

这里就不介绍有哪些XSS语句了,直接奉上XSS爆破神器 XSStrike,可有效的过WAF和规则拦截。

下载地址:https://github.com/s0md3v/XSStrike

1.测试一个使用GET方法的网页

python3 xsstrike.py -u "http://example.com/search.php?q=query

2.测试POST数据

python3 xsstrike.py -u "http://example.com/search.php" --data "q=query"python3 xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"} --json'

3.测试URL路径

python3 xsstrike.py -u "http://example.com/search/form/query" --path

4.从目标网页开始搜寻目标并进行测试

python3 xsstrike.py -u "http://example.com/page.php" --crawl

指定爬网的深度,默认2, -l

python3 xsstrike.py -u "http://example.com/page.php" --crawl -l 3

5.如果要测试文件中的URL,或者只是想添加种子进行爬网,则可以使用该--seeds选项

python xsstrike.py --seeds urls.txt

6.查找隐藏的参数,通过解析HTML和暴力破解来查找隐藏的参数

python3 xsstrike.py -u "http://example.com/page.php" --params

7.盲XSS,爬行中使用此参数可向每个html表单里面的每个变量插入xss代码

python3 xsstrike.py -u http://example.com/page.php?q=query --crawl --blind

8.模糊测试--fuzzer,该模糊器旨在测试过滤器和Web应用程序防火墙,可使用-d选项将延迟设置为1秒。

python3 xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer

9.跳过DOM扫描,在爬网时可跳过DOM XSS扫描,以节省时间

python3 xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom

10.更新如果跟上--updata选项,XSStrike将检查更新。如果有更新的版本可用,XSStrike将下载更新并将其合并到当前目录中,而不会覆盖其他文件。

python3 xsstrike.py --update

六、危害:

(1)窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。

(2)窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。

(3)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。

(4)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。

七、防御方法:

对输入的特殊字符进行过滤、转义,对输出的数据进行编码。

XSS漏洞主要是获取用户cookie,设置httponly可以有效方法cookie,攻击者利用XSS漏洞盗取cookie。

文章目录