Burp Suite 插件开发(一)

Burp Suite 介绍 Burp Suite是一款用于攻击和测试Web应用程序的集成平台,它包含了多种工具,如代理、重发器、扫描器、爬虫、Intruder、Repeater等,可以协同工作,共享信息,支持各种攻击和检测方法。 Burp Suite的插件是一种扩展Burp Suite功能的方式,可以通过Burp Extender模块来安装和管理。插件可以由社区用户创建和维护,也可以由自己编写。插件可以修改HTTP请求和响应,发送额外的HTTP请求,自定义Burp Suite的界面和功能,添加额外的扫描检查,访问Burp Suite的信息等。 在本文中,我们将介绍 Burp Suite 插件,并使用 IDEA 工具编写简单的自定义插件。 配置环境 首先我们需要安装 IDE 工具,可以下载 IntelliJ IDEA、Atom、Netbeans、Eclipse 等。 Java 环境: Java 环境我们将在后续文章中以使用 IDEA 工具编写为例介绍。  Python 环境: Burp Suite 依赖 Jython 来支持 Python,需要下载 Jython 并配置 Burp Suite 位置。 在 Burp Suite 页面加载 Python 插件需要选择扩展类型为 Python 并指定 Python 插件文件。 API Extender…

手动编写 UDF 文件

MySQL UDF 简介 MySQL UDF (User Defined Function) 是一种可以扩展 MySQL 功能的机制,通过编写 C 或 C++ 代码,可以创建自定义的函数,甚至执行系统命令。 要利用 MySQL UDF 执行系统命令,需要满足以下三个条件: 拥有 MySQL 的 root 权限,可以创建和删除函数 拥有 MySQL 服务的文件权限,可以将 UDF 文件写到 MySQL 插件目录 UDF 文件是针对目标系统的平台和架构编译的,否则会出现错误 编写代码 在上文提到,利用 UDF 执行系统命令需要针对目标系统的平台和架构编译,比如目标 MySQL 服务器为 Windows 系统则需要 UDF 文件后缀为 .dll,Linux 系统则需要 UDF 文件后缀为 .so。 本次选择以 Kali Linux 系统为例,编译代码前首先需要安装开发库,Kali Linux 安装命令为: ┌──(root㉿kali)-[~] └─# apt…

php-memcached CRLF绕过

简介 在正式讲解前,我们先简单了解下CRLF注入漏洞。 在HTTP报文中,状态行和首部中的每行以CRLF结束,首部与主体之间由一空行分隔。而CRLF漏洞的产生则是因为Web应用没有对用户输入做严格验证,导致攻击者可以输入一些恶意字符串,攻击者一旦成功注入CRLF,就会在响应中输入,所以也称为HTTP响应拆分漏洞。 在CRLF中,“CR”意为回车(例:r、%0D),“LF”意为换行符(例:n、%0A)。在Windows系统中,CRLF表示行的结束;Linux则以LF表示行的结束。 一般来说更多是将CRLF用于会话固定漏洞、XSS漏洞和窃取cookie等,但是CRLF注入漏洞也可以利用在Web应用程序中。 漏洞环境 Memcached是一个开源、高性能的分布式内存对象缓存系统。 影响版本: V2.2.0及以下版本 在早些时候Memcached也爆发过CRLF注入,而本次绕过则是根据之前爆发过的CRLF注入而产生的1Day漏洞,因为是1Day所以直接下最新版即可。 我们使用Kali Linux环境,编写以下代码文件,并放到网页目录下。 <?php $server = new Memcached(); $server->addServer('localhost', 11211); $token = $_GET['token']; $server->set("wolf","poc") ; echo "[token] = "; var_dump($server->get("$token")); echo "[wolf] = "; var_dump($server->get("wolf")); 在Kali Linux终端输入命令: apt-get install memcached 安装Memcached后,输入以下命令: service memcached start //开启Memcached服务 netstat -ntlp //查看服务是否开启 看到11211端口为监听状态则代表Memcached服务正常开启,然后只需要配置php环境重启Apache2即可。 基础命令 在搭建好漏洞环境后,我们先简单了解下Memcached的命令,会更加方便后续的漏洞利用。 set命令 Memcached的set命令用于将value存储在指定的key中,如果key已存在则会更新key值。 基本语法如下: set key…