XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。 在XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览器。 由于有的服务器并没有对用户的输入进行安全方面的验证,攻击者就可以很容易地通过正常的输入手段,夹带进一些恶意的HTML脚本代码。当受害者的浏览器访问目标服务器上被注入恶意脚本的页面后,由于它对目标服务器的信任,这段恶意脚本的执行不会受到什么阻碍。而此时,攻击者的目的就已经达到了。
XSS 分类: 1.反射型 2.存储型 3.DOM型
XSS (Stored)存储型攻击发生的具体情镜:
黑客发现一个存在XSS漏洞的接口或页面,构造恶意代码(payload)后,将其插入到页面中使得所有浏览该页面的用户均受到安全威胁。payload :
下面我们使用beef XSS配合完成攻击。 这里我们将payload插入页面后,当用户浏览了这个页面,标签就会远程执行我们的beef上面的恶意js代码从而盗取cookie。 启动BEEF方法如下: 第一步,点击左侧终端后输入 beef-xss 第二步,等待打开Web界面,输入帐户密码。密码及账户均为 beef
开启正式的攻击测试: 插入的payload为:
其中172.16.11.2为beef工具所在的主机IP,根据实际情况给予修改即可。另Linux查看本机IP地址的命令为:ifconfig 之后我们先刷新一下页面,确保我们插入的代码执行。 再进入之前打开的BEEF界面,查询我们收到的cookie: 进入BEEF后我们先点击 Command Browser -> Commands -> 在Searche框输入cookie并回车 -> 进入新的页面后点击右下角Execute ->之后点击中间出现的记录 此时我们就可以在右侧看到我们收到的cookie了。 完成全部操作后我们将得到一个格式为: php=xxxxxxxxxx;security=low样式的cookie。
那么到此可能会产生一个问题,如果攻击者能诱使其他用户访问他构造的URL,从而攻击用户浏览器盗取cookie。那么他为什么还有费大力气在一个正常的网站挖掘XSS漏洞,然后再加以利用。如果他在自己的网站上编写脚本并引诱用户点击不是更加便利么?
这里就要介绍一下同源策略的概念。
同源策略是浏览器实施的一种关键机制,主要用于防止不同来源内容相互干扰。
其保障了,在用户浏览器打开多个站点(源)时,一个站点(源)可以其自身(同源)从收到内容,并可以读取和修改,但不能从其他其他站点收到内容。
当没有同源策略时,如果某个不知情的用户浏览到恶意网站,该网站上运行的脚本代码将在能够访问这名用户与该网站交互信息的同时,访问到该用户浏览器上打开的其他网站上的任何数据和功能。这样恶意网站几乎可以为所欲为,比如上文的盗用cookie行为,就可以使攻击者冒用用户身份进行操作。
因此,设计同源策略就是为了避免不同域在用户浏览器中彼此干扰,浏览器对不同来源(域)收到的内容进行隔离。这也回答了为什么攻击者要利用网站的XSS漏洞来构造钓鱼连接,攻击者的目的不是单纯的执行脚本,而是盗取用户在存在XSS漏洞的网站上的cookie。
6.1 简单说一下xss攻击吧
xss攻击中文全称叫做跨站脚本攻击 , 是一种客户端攻击 , 受害者往往是用户 , 但是网站管理员也是用户
, 所以xss也可以算是一种服务端攻击 , 最常用的代码是javascript语言
6.2 形成xss攻击的原理
web程序没有对用户的输入做严格的过滤和限制 , 对输出没有进行html实体编码
6.3 xss的危害
获取用户的cookie信息
键盘记录
网络钓鱼,包括盗取各类用户账号
网页挂马,进行恶意操作,例如任意篡改页面信息、删除文章等
进行大量的客户端攻击,如DDoS攻击
可以结合其他漏洞,如CSRF漏洞 , 打组合拳
总之js能做的事 , xss攻击都能实现
6.4 xss的分类
6.4 xss可能存在的地方
html标签中
标签的属性中
style样式中
javascript代码中
6.5 你了解什么是同源策略吗
同源策略是指 : 禁止页面加载或执行与自身来源不同的域的任何脚本
当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域 , 但是部分标签是不受同源策
略的影响