一、XSS 简介
XSS 跨站脚本攻击,是将 JavaScript 代码插入web页面中,之后当用户浏览页面时,会执行嵌套在web页面里面的 JavaScript 代码,从而达到攻击用户的目的。为了跟 HTML 里面的层叠样式(CSS)作区分,所以叫做 XSS。
注入攻击的本质,是把用户输入的数据当作代码执行。
这里有两个关键条件:
第一个是用户能够控制输入
第二个是原本程序要执行的代码,拼接了用户输入的数据
二、XSS 漏洞原理
那么 xss 主要拼接的是什么?
SQL注入拼接的是操作数据库的 SQL 语句。XSS 拼接的是网页的 HTML 代码,一般而言我们是可以拼接出合适的 HTML 代码去执行恶意的JS语句(总结:xss就是拼接恶意的 HTML,执行并能够成功解析)
xss 的危害:
盗取 Cookie(用的最为频繁)
获取内网 IP
获取浏览器保存的明文密码
截取网页屏幕
网页上的键盘记录
伪造钓鱼链接
三、XSS 种类
XSS 的种类:
1、反射型 xss
你提交的数据成功的实现了 xss,但是仅仅是对你这次访问产生了影响,是非持久型攻击
2、存储型 xss(持久型)
你提交的数据成功的实现了 xss,存入了数据库,别人访问这个页面的时候就会自动触发
3、DOM型 xss
DOM文档对象模型,客户端脚本处理逻辑导致的安全问题
详细教程:https://www.jianshu.com/p/4fcb4b411a66
四、XSS平台
https://xsspt.com/index.php?do=login
xss 平台方便了 xss 攻击,只需要引入一个平台外部链接就可以了实现各种功能
五、常见的 XSS 的测试点
手工 + 工具 + 思路 + 勤奋的双手 = 漏洞
六、XSS 挑战实例
360插件:xss 插件扫描 0kee.360.cn
360浏览器:https://browser.360.cn/ee/
更多工具:https://github.com/rajeshmajumdar/BruteXSS
七、beef - xss 简介
beef:一款浏览器攻击框架,用 Ruby 语言开发的,Kali中默认安装的一个模块,用于实现对xss漏洞的攻击和利用。
beef 主要是往网页中插入一段名为 hook.js 脚本代码,如果浏览器访问了又 hook.js(钩子)的页面,就会被 hook(钩住),勾连的浏览器会执行初始代码返回一些信息,接着目标主机会每隔一段时间(默认为1秒)就会向 beef 服务器发送一个请求,询问是否有新的代码需要执行。beef 服务器本质上就像一个web应用,被分为前端和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指令,beef 持有者可以通过浏览器来登录 beef 的后端,来控制前端(用户的浏览器)。beef 一般和xss漏洞结合使用。
打开方式:
1、直接点击桌面上的图标,过5秒左右,然后它自动会打开命令行和浏览器beef的登录框。
2、任意目录,直接输入命令:beef-xss 打开,过5秒左右,然后它会自动打开命令行和浏览器beef的登录框。
3、进入 /usr/share/beef-xss/,输入命令:./beef打开,然后手动打开浏览器链接。
八、beef-xss 配置
修改默认密码:
vim /etc/beef-xss/config.yaml 修改配置文件
配置教程:https://blog.csdn.net/qq_40624810/article/details/110958036
测试界面:http://127.0.0.1:3000/demos/butcher/index.html
beef-xss 控制台