Tomcat内存马
Tomcat内存马
Servlet内存马下面是基于动态注册Servlet的内存马实现
首先要了解Servlet是如何被注册的,注册的过程是怎样的。按照正常的实现Servlet,是需要在web.xml里面进行配置的,如:
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
要实现动态注册,那就要先去了解这个web.xml是如何被解析并且获取servlet的
解析web.xml的类是org.apache.catalina.startup.ContextConfig的webConfig()方法这个 ...
Tomcat系列
Tomcat系列简介Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。
环境下载:https://archive.apache.org/dist/tomcat/
CVE-2017-12615(任意文件写入)影响范围: Apache Tomcat 7.0.0 - 7.0.79 Apache Tomcat 8.5.19
环境搭建:这里使用的是vulhub的环境,其中的conf/web.xml如下:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache ...
Fastjson系列
FastJson系列前置知识环境搭建:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.24</version>
</dependency>
如果无法下载源码使用下面命令:
mvn dependency:resolve -Dclassifier=sources
序列化先写一个javabean:
package org.example;
public class user {
private String name;
private int age;
public user() {
System.out.println("调用构造函数");
}
public String getName() ...
Laravel漏洞合集
Laravel漏洞合集SQL注入(ignore)漏洞描述:
该漏洞存在于Laravel的表单验证功能,漏洞函数为ignore(),漏洞文件位于/vendor/laravel/ramework/src/Illuminate/Validation/Rules/Unique.php。有时候开发者希望在进行字段唯一性验证时忽略指定字段以及字段值,通常会调用Rule类的ignore方法。该方法有两个参数,第一个参数为字段值,第二个参数为字段名,当字段名为空时,默认字段名为“id”。如果用户可以控制ignore()方法的参数值,就会产生SQL注入漏洞。漏洞影响版本<=5.8.5
查看官方修改:
发现在ignore值获取的过程中添加了addslashes()过滤
测试环境搭建:
新建一个控制器:\app\Http\Controllers\TestController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Req ...
Commons-Collections反序列化链合集
Commons-Collections利用链合集前置知识
java反射
javassist
动态代理
JVM类加载机制
CC1版本:cc3.1~3.2.1
jdk: < 8u71
环境搭建:
<dependencies>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
对比官方在3.2.2版本https://github.com/apache/commons-collections/commit/1642b00d67b96de87cad44223efb9ab5b4fb7be5
默认情况下禁用 ...
迅睿CMS反序列化漏洞
迅睿CMS反序列化漏洞前言文章首发于奇安信攻防社区
测试环境:V 4.6.2 ,目前最新版
漏洞点\xunruicms\dayrui\Fcms\Core\Helper.php
function dr_string2array($data, $limit = '') {
if (!$data) {
return [];
} elseif (is_array($data)) {
$rt = $data;
} else {
$rt = json_decode($data, true);
if (!$rt) {
$rt = unserialize(stripslashes($data));
}
}
if (is_array($rt) && $limit) {
return dr_arraycut($r ...
ThinkPHP 代码审计
ThinkPHP代码审计
基础URL和路由:https://blog.csdn.net/lthirdonel/article/details/88775620
thinkphp内置了几种方法,在ThinkPHP/Common/functions.php,比如I(),M()等等
A 快速实例化Action类库
B 执行行为类
C 配置参数存取方法
D 快速实例化Model类库
F 快速简单文本数据存取方法
I http获取参数
L 语言参数存取方法
M 快速高性能实例化模型
R 快速远程调用Action类方法
S 快速缓存存取方法
U URL动态生成和重定向方法
W 快速Widget输出方法
ThinkPHP 2.xpreg_replace /e模式代码执行漏洞https://blog.csdn.net/weixin_43749601/article/details/113417093
在2.1版本中存在大量preg_replace()函数使用了/e模式,如果参数可控,有可能存在任意代码执行漏洞(php<7)
下面的@e和/e是一样的
在Think ...
NginxWebUi 任意命令执行漏洞
漏洞描述nginxWebUI是一款图形化管理nginx配置的工具,能通过网页快速配置nginx的各种功能,包括HTTP和TCP协议转发、反向代理、负载均衡、静态HTML服务器以及SSL证书的自动申请、续签和配置,配置完成后可以一键生成nginx.conf文件,并控制nginx使用此文件进行启动和重载。 nginxWebUI后台提供执行nginx相关命令的接口,由于未对用户的输入进行过滤,导致可在后台执行任意命令。并且该系统权限校验存在问题,导致存在权限绕过,在前台可直接调用后台接口,最终可以达到无条件远程命令执行的效果。
影响版本nginxWebUI <= 3.5.2 未授权命令执行漏洞(网上公开为3.5.0 但下载后发现作者已删除GITEE中3.5.0的相应代码,下载3.5.0版本jar包反编译后发现并没有对权限绕过进行修复)nginxWebUI 全版本均存在命令执行漏洞(文章截止最新版3.6.0)
漏洞细节任意命令执行3.4.7 之前版本漏洞存在点:com/cym/controller/adminPage/ConfController.java(3.4.7版本之前 ...
关于Weblogic漏洞(CVE-2023-21839和CVE-2023-21931)
前言之前没复现过Weblogic相关的漏洞,现在有空就想复现一下今年爆出的两个漏洞CVE-2023-21839和CVE-2023-21931,跟着大佬的文章学习一手
T3协议T3协议参考https://c0ny1.gitbooks.io/javasec/content/jing-dian-an-li/t3xie-yi-yan-jiu.html
查阅资料发现weblogic的反序列化漏洞大致分为两种,一种是基于T3协议的反序列化漏洞,一种是基于XML的反序列化漏洞。
关于这个T3协议,是Weblogic里面独有的一个协议,传输的数据是序列化后的数据,而服务器在接收到数据后会进行一个反序列化的操作,所以下面提到的两个漏洞都是属于后序列化漏洞
后序列化漏洞
Weblogic反序列化漏洞挖掘思路是利⽤ readObject() 、 readResolve() 、 readExternal() 等反序列化⽅法对恶意序列化数据进⾏操作,以达到攻击⽬的。常规的漏洞思路重点关注Weblogic在反序列化过程中进⾏恶意攻击,⽽忽略了反序列化完成后的操作。后反序列化漏洞挖掘的思路重点关注Weblogic完 ...
CommonsCollections2
CommonsCollections2前言很久没学习了,对java的反序列化的知识很陌生,学习一下CC2,打好基础 ,篇幅不多贵在记录
环境搭建CC2使用的是javassist和PriorityQueue来构造利用链;并且使用的是commons-collections-4.0版本,而3.1-3.2.1版本中TransformingComparator并没有去实现Serializable接口,也就是说这是不可以被序列化的,所以CC2不用3.x版本
java 1.8_111
commons-collections4
在maven项目中的pom文件中添加下面两个依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
<d ...