XSS漏洞

一、简介

概念

 XSS又叫CSS(Cross Site Script)跨站脚本攻击是指 攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

​ xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的

一般的攻击过程

  • 攻击者将恶意代码注入到服务器中(如论坛、留言板、邮件等);
  • 用户在没有防备的情况下访问了被注入了恶意代码的服务器;
  • 服务器将含有恶意代码的网页响应给客户端;
  • 在客户端浏览器中触发JS恶意代码。

危害

  • 挂马
  • 盗取用户Cookie。
  • 刷广告、刷浏量、破坏网上数据
  • 劫持用户会话,执行任意操作;是指操作用户浏览器
  • DOS(拒绝服务)客户端浏览器。
  • 钓鱼攻击,高级的钓鱼技巧。
  • 劫持用户Web行为,甚至进一步渗透内网。
  • 爆发Web2.0蠕虫。
  • 蠕虫式的DDoS攻击。

二、三种类型

1.反射型

概念

(非持久化)XXS代码常常出现在URL请求中,当用户访问带有XXS代码的URL时,服务器端接收处理,然后将带有XSS代码的数据返回给浏览器,浏览器解析带有XSS代码的数据并执行XSS代码,整个过程就像一次反射。

2.储存型

 概念

攻击者提交一段XSS代码后,服务器接收并储存,当其他用户访问包含该XSS代码的页面时,XSS代码被浏览器解析并执行。

存储型 XSS 攻击的特点之一是提交的恶意内容会被永久存储,因而一个单独的恶意代码就会使多个用户受害,故被称为持久性XSS ,它也是跨站脚本攻击中危害最的一类。
二是被存储的用户提交的恶意内容不一定被页面使用,因此存在危险的响应信息不一定被立即返回,也许在访问那些在时间上和空间上没有直接关联的页面时才会引发攻击,因此存在不确定性和更好的隐蔽性。
这类攻击的一个典型场景是留言板、博客和论坛等,当恶意用户在某论坛页面发布含有恶意的Javascript 码的留言时,论坛会将该用户的留言内容保存在数据库或文件中并作为页面内容的一部分显示出来。当其他用户查看该恶意用户的留言时,恶意用户提交的恶意代码就会在用户浏览器中解析并执行。

3.DOM型

概念

DOM (Document Objet Model)指文档对象模型。该类攻击是反射型XSS的变种。

攻击者构造URL类似:

http://example.com/page.html#<script>alert('DOM型XSS攻击!')</script>

该URL原本页面是:

<!DOCTYPE html>
<html>
<head>
    <title>DOM型XSS示例</title>
</head>
<body>
    <h1>欢迎访问我们的网站!</h1>
    <div id="output"></div>
    <script>
        // 假设这里是从URL参数中获取的数据
        var userInput = window.location.hash.substring(1);

        // 在页面中插入用户输入的内容
        document.getElementById('output').innerHTML = '您的输入是:' + userInput;
    </script>
</body>
</html>

 用户点击该URL,页面最终的DOM结构会变成

<div id="output"><script>alert('DOM型XSS攻击!')</script></div>

与反射型区别

反射型:用户点击URL向服务器发送请求,服务器处理了带有XSS代码的URL但没有解析运行该XSS代码,而是原封不动的返回用户浏览器,由用户浏览器解析运行XSS代码。反射型XSS经过了后端服务器的交互。

DOM型:没有经过后端服务器交互,直接提交给html页面,没有传递给后端服务器,服务器返回给用户浏览器的数据也不会包含xss代码,浏览器加载数据时会执行该代码。

判断三种类型

发送一次带XSS代码的请求,若只能在当前返回的数据包里发现XSS代码,则是反射型;若以后这个页面的返回包里都会有XSS代码,则是存储型;若在返回包里找不到XSS代码,则是DOM型。

三、漏洞验证

1 漏洞验证相关概念

POC:全称 ’ Proof of Concept ',中文 ’ 概念验证 ’ ,常指一段漏洞验证的代码。
EXP:全称 ’ Exploit ',中文 ’ 利用 ',指利用系统漏洞进行攻击的工具,即从漏洞检测验证到利用的工具。
Payload:中文 ’ 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。
Shellcode:简单翻译 ’ shell代码 ',利用漏洞时所执行的代码,是Payload的一种。Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。

2 漏洞验证相关概念之间的区别

(1)POC与EXP对比
POC是用来验证漏洞存在的,EXP是用来完整利用漏洞(包括从验证到利用全过程)的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。
(2)Payload与Shellcode
Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。
(3)Payload与EXP
同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。
(4)Payload模块
在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。

四、利用流程

1.找注入点
    找到数据输入的地方

2.判断回显位置---输入的数据在什么地方输出
    如果输入的数据能够在前端进行输出,则可以证明输入的前段恶意代码在没有安全性处理的情 况下能够输出前端,从而造成风险

3.构造基础的payload

4.进行提交payload 

5.分析响应状况
    1. 如果成功解析则XSS存在
    2. 反之考虑绕过

6.确认漏洞
    如果响应达到了预期,则说明漏洞存在,反之不存在。

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值