WordPress<6.3.2 __toString 反序列化链分析
环境搭建我这里使用phpstudy搭建的 WordPress 环境,官网下载 6.3.1 版本,https://wordpress.org/download/releases/
注意在安装的时候会自动更新到wordpress最新版本,需要禁止自动更新
在填完数据库信息,点下一步之后会生成 wp-config.php 文件,这个时候在 wp-config.php 文件中添加如下代码即可:
1define( 'WP_AUTO_UPDATE_CORE', false );
创建漏洞点,需要包含wp-load.php,然后调用wp()函数初始化
12345678910<?phprequire_once __DIR__ . '/wp-load.php';// Set up the WordPress query.wp();$a = unserialize('...');echo $a;
漏洞分析wp-includes/class-wp-theme.php
通过__toString会调用到它的 display 方法
跟进到 g ...
CVE-2022-21724 PostgreSQL JDBC Driver RCE
PostgreSQL JDBC Attack
任意代码执行 socketFactory/socketFactoryArg影响范围:
REL9.4.1208 <= PostgreSQL <42.2.25
42.3.0 <= PostgreSQL < 42.3.2
官方通告:https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-v7wg-cpwc-24m4
漏洞分析直接看到触发漏洞的地方org.postgresql.core.SocketFactoryFactory#getSocketFactory
从info中获取socketFactory和socketFactoryArg,如果不存在则设置为默认值
发现默认值均为null
12345678910SOCKET_FACTORY( "socketFactory", null, "Specify a socket factory for socket creation" ...
通达OA V11.x 反序列化漏洞分析
快一年没分析过php反序列化了,恰巧前不久看到烽火台实验室发了一个通达oa的yii2反序列化漏洞,就趁这个机会好好学习一下
环境搭建通达OA v11.10下载地址:https://cdndown.tongda2000.com/oa/2019/TDOA11.10.exe
网站源码部分在 webroot 目录下,使用了 zend 对源码进行加密,可以用 SeayDzend.exe 工具进行解密
安装之后的 php 版本为5.4.45,OA管理员用户名 admin,密码为空
漏洞分析反序列化触发点在通达中有一个模块/general/appbuilder/web/index.php,采用了yii框架实现,并未通过 auth.inc.php 文件来进行鉴权
用?截取url,需要满足url字符串存在/portal/以及/gateway/,并且不包含后续关键字即可访问对应的接口,构造
1/general/appbuilder/web/portal/gateway/?
此时会加载视图general/appbuilder/views/layouts/main.php
这里会执行yii\helpers ...
CVE-2023-41892 CraftCMS远程代码执行漏洞分析
日常看看p神的知识星球有什么新trick,发现有人问了 craftcms 调用 imagick 写文件的方法,很经典的一个php原生类利用:Exploiting Arbitrary Object Instantiations in PHP without Custom Classes,但是实战一直没有遇到过,就趁这次机会好好学习一下
环境搭建看到:https://craftcms.com/docs/4.x/requirements.html
需要使用php8以上版本,安装好所有的扩展,下载存在漏洞的版本:https://github.com/craftcms/cms/releases/download/4.4.14/CraftCMS-4.4.14.zip
安装步骤:https://craftcms.com/knowledge-base/first-time-setup
12php craft setupphp craft serve
然后访问http://127.0.0.1:8080/即可看到成功安装
漏洞分析官方通告:https://github.com/craftcms/cms/ ...
用友NC6.5 代码审计
用友NC在java反序列化中也算典型的例子了,就简单的看一下
环境搭建参考:用友nc6.5详细安装过程用友6.5安装及配置注意要点
注意在配置数据源时,需要将 sqljdbc4.jar 包复制到 jdk/lib 目录下添加远程调试:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
漏洞分析先看看关键路由,在webapps/nc_web/WEB-INF/web.xml
1234<servlet> <servlet-name>NCInvokerServlet</servlet-name> <servlet-class>nc.bs.framework.server.InvokerServlet</servlet-class></servlet>
发现 service 和 servlet 均由 NCInvokerServlet 处理跟进到lib/fwserver.jar的nc.bs.framework.server.In ...
CVE-2023-38646 Metabase RCE
Make JDBC Attacks 早有耳闻,但一直没有机会学习,正巧最近出了一个 Metabase 的RCE漏洞,就复现分析一下
环境搭建存在漏洞版本的源码:https://github.com/metabase/metabase/releases/tag/v0.46.6可以直接下载提供的jar包:https://downloads.metabase.com/v0.46.6/metabase.jar
注意启动的时候需要 JDK>=11java -jar metabase.jar最后访问 3000 端口进行安装即可
漏洞分析setup-token泄露在 Jan 28, 2022 Metabase官方修改了一处代码https://github.com/metabase/metabase/commit/0526d88f997d0f26304cdbb6313996df463ad13f
在安装完成后移除了 clear-token 操作,导致在 properties 中仍然存在setup-token看到src/metabase/api/session.clj
而 setup-t ...
MSSQL 数据库利用
基础知识Microsoft SQL Server 是微软开发的关系型数据库管理系统(DBMS),它具有极其广泛的用途,可以在各个方面使用,从存储个人博客的内容到存储客户数据等
SQL Server 默认开放的端口是 TCP 1433
我这里测试的版本是Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
首先是一些基础的命令
123456789101112#查看当前用户名select user;#查看版本信息select @@version;#查看服务端主机名select @@servername;#查看当前数据库名select db_name();#查看客户端主机名select host_name();#查看是否是管理员select is_srvrolemember('sysadmin');
常见存储过程存储过程是一组为了完成某个特定功能的SQL语句,一次编译永久生效。然后用户通过指定存储过程的名字以及参数来执行
xp_dirtree 列文件夹、文件:
12execute master.dbo.xp_dir ...
MySQL 数据库利用
MySQL提权当拿到 mysql 执行权限,想要更深层次的利用,就会考虑如何命令执行
假如说拿下了 phpMyAdmin 的情况下
如何进行RCE利用
直接写webshell前提条件:
知道网站物理路径
secure_file_priv 无限制
网站路径有写入权限
我们先查看一下secure_file_priv的值
12select @@secure_file_priv;show global variables like 'secure%';
当secure_file_priv的值为 NULL,表示限制 mysqld 不允许导入|导出
当secure_file_priv的值为/tmp/,表示限制 mysqld 的导入|导出只能发生在/tmp/目录下
当secure_file_priv的值为空,表示不对 mysqld 的导入|导出做限制
获取数据库版本号:
1SHOW VARIABLES LIKE '%version%';
获取mysql安装目录
1select @@basedir;
像这种情况下可以直接写webshell
12s ...
海康威视综合安防 iSecure Center 代码审计
前些日子这个洞刚出的时候几乎通杀,有幸拿到了源码,就来分析一下
代码审计权限绕过首先是一个权限绕过问题,看到配置文件 cas-client.properties
发现cas.ignore.pattern,很明显存放的就是绕过权限的路径,全局查找一下看到bic-sso-client-1.6.9.4.RELEASE.jar!/com/hikvision/sso/client/config/util/CasClientConfig.class
全局查找调用CasClientConfig.getCasClientConfig方法的类,看到bic-sso-client-1.6.9.4.RELEASE.jar!/org/jasig/cas/client/util/AbstractConfigurationFilter.class的 getPropertyFromInitParams 方法
那么就找下什么时候 propertyName 的值为 ignorePattern在bic-sso-client-1.6.9.4.RELEASE.jar!/org/jasig/cas/client/authent ...
2022西湖论剑 real world git复现
终于忙完项目了,没啥事,继续拿以前没做出来的题审计,还是tcl,得加强代码审计能力
环境搭建先下载个源码,直接选择最新版本:git clone https://github.com/PGYER/codefever.git参考官方文档,就直接用 docker 搭建,一行命令搞定
123456789docker container run \ -d --privileged=true --name codefever \ -p 8081:80 -p 22:22 \ -v ~/config/db:/var/lib/mysql \ -v ~/config/env:/data/www/codefever-community/env \ -v ~/config/logs:/data/www/codefever-community/application/logs \ -v ~/config/git-storage:/data/www/codefever-community/git-storage \ -v ~/config/file-storage:/data/www/codefe ...