XSS跨站脚本攻击

介绍:

安全漏洞,它允许攻击者在目标网站上注入恶意的客户端脚本。这些脚本通常以JavaScript编写,执行在用户的浏览器上,从而窃取用户信息、劫持用户会话或者重定向到恶意网站。就是将代码植入网页,得到高权限,私密网页内容,cookie的目的。

XSS攻击过程:

分类:

存储型(Persistent):恶意脚本存储在目标服务器上,例如在数据库中。当受害者浏览包含恶意脚本的页面时,脚本会被执行。常见于留言板、评论区等。

反射型(Reflected):恶意脚本作为输入数据提交到服务器,并立即在响应中反射回到用户的浏览器中。常见于搜索框、URL参数等。

DOM型(DOM-Based):恶意脚本直接修改页面的DOM结构,不经过服务器。攻击代码由客户端执行,利用JavaScript修改页面内容。

反射性XSS攻击流程:

反射性XSS攻击方式:

通过将恶意脚本代码嵌入到URL请求参数中,当受害者点击该链接并访问时,服务器将该恶意代码反射回浏览器,浏览器解释并执行这些代码

步骤:

先要判断是否有XSS漏洞,可以在网页输入一些特殊字符,看有没有被过滤  <>'"\/

(1)构造恶意链接
攻击者首先构造一个包含恶意脚本的链接,例如

http://example.com/search?query=<script>alert('XSS')</script>

(2)诱使用户点击链接
攻击者通过电子邮件、即时消息、社交媒体等方式诱使受害者点击上述恶意链接。

(3)恶意脚本执行
当受害者点击链接并访问时,服务器将用户提供的查询参数(包括恶意脚本)直接反射回网页。例如,服务器返回的页面可能包含以下内容:

<html>
  <body>
    <h1>Search results for: <script>alert('XSS')</script></h1>
  </body>
</html>

浏览器解析这段HTML代码并执行其中的<script>alert('XSS')</script>,弹出一个警告框。

储存型XSS攻击方式:

将恶意脚本代码持久化地存储在服务器端,当其他用户访问相关数据时,恶意代码会在他们的浏览器中执行

步骤:

(1)注入恶意脚本
攻击者通过正常的输入途径,例如表单提交、留言板、评论系统等,将恶意脚本代码提交到服务器。例如,攻击者在留言板上发表一条包含恶意代码的留言:

<script>alert('XSS');</script>

(2):恶意脚本存储
服务器将上述恶意代码存储在数据库中,如下所示:

INSERT INTO comments (username, message) VALUES ('attacker', '<script>alert('XSS');</script>');

(3)恶意脚本执行
当其他用户访问该留言板时,服务器将存储的留言从数据库中读取并在页面中显示出来:

<html>
  <body>
    <div class="comment">
      <p><strong>attacker:</strong></p>
      <p><script>alert('XSS');</script></p>
    </div>
  </body>
</html>

浏览器解析并执行了恶意脚本,触发了攻击者预设的行为,例如弹出警告框、窃取用户数据或执行其他恶意操作。

DOM型XSS攻击方式:

利用了客户端JavaScript代码的漏洞,通过修改DOM结构或属性,在页面中注入和执行恶意脚本。通常,这种攻击依赖于将不受信任的数据直接插入DOM中,而没有进行适当的验证或编码。

步骤:

(1)构造恶意输入

攻击者构造一个包含恶意代码的输入,例如通过URL参数、锚点(hash)值、表单输入等。例如,攻击者可能构造一个恶意链接:

http://example.com/page#<script>alert('XSS')</script>

(2):诱使用户访问链接

攻击者通过电子邮件、即时消息、社交媒体等方式诱使受害者点击上述恶意链接。

(3)客户端执行恶意代码

受害者点击链接后,页面加载时,JavaScript代码读取URL中的恶意参数并将其插入到DOM中。例如,以下是一个存在漏洞的JavaScript代码片段:

<!DOCTYPE html>
<html>
<head>
  <title>DOM XSS Example</title>
</head>
<body>
  <h1>Welcome!</h1>
  <div id="content"></div>
  <script>
    // 从URL中获取hash值
    var hash = window.location.hash.substring(1);
    // 将hash值插入到DOM中
    document.getElementById('content').innerHTML = hash;
  </script>
</body>
</html>

当用户访问http://example.com/page#<script>alert('XSS')</script>时,页面将执行hash值中的恶意脚本,弹出警告框。

XSS的攻击途径:

URL参数:攻击者在URL中加入恶意脚本代码

表单输入:攻击者在表单提交时注入恶意脚本代码

HTTP头部:通过修改HTTP请求头部,例如Referer或User-Agent,注入恶意脚本代码。

用户提交内容:例如在留言板、评论系统或用户简介中注入恶意脚本代码

数据库存储:恶意脚本代码被存储在数据库中,并在页面渲染时被执行

URL片段(hash):攻击者在URL片段中加入恶意脚本代码

beef-xss安装

(1)apt命令安装

sudo apt-get install beef-xss

(2)前面加sudo运行

(3)这里叫你修改密码

(4)上面密码为root,修改完后发现自动弹出窗口,访问127.0.0.1:3000/ui/authentication

(5)登录,默认的账号为beef,这里密码是root。进入成功。

*(6)再次输入sudo beef-xss,启动工具

(7)这里有生成的漏洞链接,最后的Hook和Example就是链接,ip换成想要注入的网页ip就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值