freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用HTMLSmuggler测试你的Web应用能否抵御HTML Smuggling攻击
2023-10-15 22:22:07

关于HTMLSmuggler

HTMLSmuggler是一款功能强大的HTML Smuggling攻击测试工具,该工具可以通过HTML Smuggling技术来测试你的Web应用程序是否足够安全。该工具基于JavaScript开发,它所生成的JavaScript Payload可以实现IDS绕过,并通过HTML Smuggling技术向目标站点发送测试Payload。

HTML Smuggling的主要目的是通过将恶意Payload伪装成看似无害的HTML和JavaScript代码,并绕过网络安全控制,如防火墙和入侵检测系统。接下来,通过利用web应用程序的动态特性,攻击者可以在不触发安全警报或被传统安全机制检测到的情况下将恶意内容传递到用户的浏览器。

HTMLSmuggler工具旨在创建一个嵌入了用户自定义的恶意Payload的独立JavaScript库,这个代码库可以整合到你的网络钓鱼网站/邮件HTML附件中,以实现IDShe IPS系统绕过,最终将嵌入式Payload发送至目标系统。

HTML Smuggling技术

HTML Smuggling,即HTML走私。HTML走私是指,浏览器根据HTML文件的内容在主机上创建恶意文件,而不是直接转发/下载恶意软件的一种技术。HTML走私可以通过在HTML页面中将恶意文件隐藏为编码后的“string”来绕过外部安全性检查和在线检测。

大多数周边/在线安全检测方法都是通过匹配文件中的某些特定模式。但在HTML走私的情况下,恶意文件被嵌在浏览器中,所以检测这样隐藏的代码是困难的。而且由于代码中的混淆,甚至检测HTML走私这种情况本身也很困难。

功能介绍

1、内置高度可配置的JavaScript模糊处理程序,可完全隐藏你的Payload;

2、既可以作为独立的JS库使用,也可以嵌入React、Vue.JS等JavaScript框架中;

3、支持自定义添加额外的数据处理、压缩或模糊处理方法;

工具安装

首先,我们需要点击【这里】下载和安装yarn包管理器。

接下来,广大研究人员可以运行下列命令将该项目源码克隆至本地:

git clone https://github.com/D00Movenok/HTMLSmuggler.git

切换到项目目录中,然后运行下列命令安装依赖组件:

cd HTMLSmuggler

yarn

下列命令可以查看工具帮助选项:

yarn build -h
Options:

  -p, --payload <string>    需要走私的Payload文件路径

  -n, --name <string>      需要下载的文件名称

  -t, --type <string>       下载文件的Contet-Type (默认: "application/octet-stream")

  -f, --function <string>    导出函数的名称 (默认: "download")

  -c, --compress          启用Payload压缩 (gzip)

  -h, --help               显示工具命令帮助信息

工具使用

准备步骤

首先,我们需要修改obfuscator.js中的javascript-obfuscator选项,或者你也可以直接使用项目提供的设置。

然后运行下列命令编译你的JavaScript Payload:

yarn build -p /path/to/payload -n file.exe -t "application/octet-stream" -c

接下来,在dist/payload.esm.js或dist/payload.umd.js路径下找到你的Payload,你可以将其嵌入到你的Web页面中,或使用download()函数调用Payload。

其中:

payload.esm.js:该脚本要通过import { download } from 'payload.esm';导入使用。

payload.umd.js:该脚本在HTML脚本 src中使用,要通过require('payload.umd');导入。

纯HTML样例

完成准备步骤之后,将创建好的脚本导入到HTML文件中:

<head>

  <script src="payload.umd.js"></script>

</head>

在<body>中调用download()函数:

<body>

  <button onclick="download()">Some phishy button</button>

</body>

搞定!

VueJS样例

完成准备步骤之后,将创建好的脚本导入到Vue文件中:

<script>

  import { download } from './payload.esm';

</script>

调用download()函数:

<template>

  <button @click="download()">Some phishy button</button>

</template>

搞定!

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

HTMLSmuggler:【GitHub传送门

参考资料

https://outflank.nl/blog/2018/08/14/html-smuggling-explained/

https://classic.yarnpkg.com/lang/en/docs/install/

# web安全 # javascript # web应用安全 # WEB攻击
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录