记一次MCMS的审计之路 代码审计

记一次MCMS的审计之路

MCMS 是 J2EE 系统,完整开源的Java CMS,基于SpringBoot 2架构,前端基于vue、element ui。为开发者提供上百套免费模板,同时提供适用的插件(文章、商城、微信、论坛、会员、评论、支付、积分、工作流、任务调度等...),一套简单好用的开源系统、一整套优质的开源生态内容体系。 十天前 ,MCMS 更新了新的一版本 5.2.9 提示新版本进行了 SQL 安全方面的优化,所以我们尝试 审计 MCMS 5.2.8 环境搭建 我们下载好安装包后 利用 idea 打开项目 ...
最新
阅读全文
PHPSTROM远程调试php项目 代码审计

PHPSTROM远程调试php项目

前言 对于调试 php 项目可以说是很熟悉了,网络上的文章也有很多。前段时间朋友询问我,是否清楚 php 远程调试。远程调试只在 java 项目上操作过,也是按照网上的文章照猫画虎,对于 php 的远程调试自然不是很清楚。前段时间又很忙,没有时间去操作,后来朋友跟我说他弄好了。我想,在学习方面,我岂能落于人后。对于 linux 的相关操作也不是很熟悉,所以我决定在 ubuntu 虚拟机上安装一个 DVWA 的 php 项目环境,同时在本地...
阅读全文
渗透测试之通过代码审计打点 代码审计

渗透测试之通过代码审计打点

前言 在渗透测试时,经常会遇到公开漏洞已经修复、只有一个登录框等情况,这时候如果能拿到代码进行审计一波,往往能打开一扇新的大门。 代码审计(Code Audit) 顾名思义就是通过阅读源代码,从中找出程序源代码中存在的缺陷或安全隐患,提前发现并解决风险,这在甲方的SDL建设中是很重要的一环。而在渗透测试中,可以通过代码审计挖掘程序漏洞,快速利用漏洞进行攻击,达成目标。 审计思路 常见的审计思路有: 1、寻找敏感功能点,通读功能点代码; 优点:精准定向挖掘,利用程度高; 缺点:命名不规范的代码容易被忽略,导致失去先机; ...
阅读全文
ThinkPHP漏洞分析与利用 代码审计

ThinkPHP漏洞分析与利用

一、组件介绍 1.1 基本信息 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。 1.2 版本介绍 ThinkPHP发展至今,核心版本主要有以下几个系列,ThinkPHP 2系列、Thin...
阅读全文
通读审计之天目MVC 代码审计

通读审计之天目MVC

0x00 前言 天目MVC是天目网络科技有限公司开发的一款专业的PHP+MYSQL产品,采用自主MVC构架。 我们今天所通读的CMS为天目MVC,从了解框架运行原理到漏洞挖掘。 源码下载地址:https://www.a5xiazai.com/php/141613.html 官网下载渠道: 因为本篇文章涉及到前台漏洞,笔者已将漏洞信息提交给官网,官网已经更新并将漏洞修补。 我们还是老样子,整个故事从index.php开始说起。 0x01 MVC的了解 我们看一下index.php的整个结...
阅读全文
SeaCMS v10.1代码审计实战 代码审计

SeaCMS v10.1代码审计实战

前言 seacms是一个代码审计入门级的cms,比较适合我这种小白玩家来学习,如果有什么错误欢迎指出。 环境 phpstudy pro php5.4.45nts seay代码审计工具 phpstrom sqlmap seacms v10.1 因为这个cms的官网已经打不开了,所以发一下自己保存的代码 链接https://pan.baidu.com/s/1f9mXyOX6sgsersyNz-kDQg提取码j3k0 安装c...
阅读全文
基于ThinkPHP的CMS审计思路 代码审计

基于ThinkPHP的CMS审计思路

前言 yxtcmf6.1是一个基于thinkphp3.2.3的cms,19年3月份发布,用来练习代码审计是个不错的选择。 审计思路 由于这个cms采用MVC架构并且是基于thinkphp3.2.3的,所以先了解文件结构,知道不同的页面对应的文件位置在哪。然后搭建一个tp3.2.3了解一下这个框架,百度找找这个框架的漏洞,再通过Seay全局搜索可能因为这个框架存在漏洞的关键词。接下来上自动审计(自动审计的规则并不是很完全,所以可以通过自己审计的经验添加规则或者上百度找一些规则),对自动审计的结果进行验证,结果可能会有几百上千条,虽然不用每一条都去看,但是也是比较需要耐心的。...
阅读全文
java代码审计 代码审计

java代码审计

java编译篇 java编译过程: Java源代码 ——(编译)——> Java字节码 ——(解释器)——> 机器码 Java源代码 ——(编译器 )——> jvm可执行的Java字节码 ——(jvm解释器) ——> 机器可执行的二进制机器码 ——>程序运行 采用字节码的好处:高效、可移植性高 以下示例为.java文件: 以下是.class文件: 反编译工具篇 ...
阅读全文
某租车系统Java代码审计之后台注入漏洞分析 代码审计

某租车系统Java代码审计之后台注入漏洞分析

CMS简介 系统基于租车业务场景而搭建的O2O服务平台,可为用户提供商务租车、接送机、旅游租车、企业租车、自驾租车、婚庆用车等自助租车服务。 系统包含车辆库管理、门店管理、员工管理、司机管理、订单管理、活动管理、评价管理、财务管理、统计等。 cms的下载地址:http://down.admin5.com/jsp/135501.html 部署简介 1、下载代码文件,可以本机调试或上传到自己服务器运行。 2、安装运行程序: (1)将解压文件夹中的opencarrun安装包复制到tomcat–>weba...
阅读全文
图解利用虚函数过GS保护 代码审计

图解利用虚函数过GS保护

前言 个人感觉利用虚函数过GS保护过程稍微会复杂些,因为涉及到多次跳转。为了写清楚利用虚函数过GS,本文从payload构造切入,着重描写payload构建过程,从而让读者明白利用虚函数过GS的细节;并且在payload构建过程,对跳转细节采用图解方式,让读者跳出代码,先理清楚整个逻辑关系,然后再载入payload,讲解整个payload运行过程。(需要说明的是文中的寻址图,仅仅为了更清楚的描述跳转过程,不完全代码在内存中的存储顺序)。balabala~~新手上路,请多多关爱,如有写的不好的地方,请轻喷,感谢!╮(╯▽╰)╭ 一、GS保护 我们知道普通的栈溢出漏洞是通...
阅读全文
python cms审计记录 代码审计

python cms审计记录

实战操作 PyOne 命令执行 \app\admin\base_view.py \app\admin\function.py cmd_dict={ 'upgrade':"cd {} && git pull origin master && bash update.sh".format(config_dir), 'running_log':'tail -30f {}/logs/PyOne.{}.log'.format(config_dir,'running'), 'error_log':'tail -30f {}/log...
阅读全文
DEDECMS伪随机漏洞 (二) :Cookie算法与Rootkey随机强度分析 代码审计

DEDECMS伪随机漏洞 (二) :Cookie算法与Rootkey随机强度分析

一、Cookie算法 1.COOKIE的作用和常见的构造形式 作用: 权限鉴别、无会话状态。 构成: 常常是以下形式 cookie = F(x,y), F为不可逆函数, x为盐 , y为和权限/用户相关的数据 我们可以知道的部分, F-> 一般常常为hash函数md5,sha256等 y-> 比如用户名称/id编号/权限简称 我们无法知道的部分, x 2.定位算法-动态调试 根据常识, 在登陆后, server端会返回cookie! 2.1在web站点上进行登陆,并抓包, 看到...
阅读全文
php 反序列化 魔术方法 代码审计

php 反序列化 魔术方法

1.__wakeup()函数漏洞就是与对象的属性个数有关,如果序列化后的字符串中表示属性个数的数字与真实属性个数一致,那么i就调用__wakeup()函数,如果该数字大于真实属性个数,就会绕过__wakeup()函数。 2、__construct() 实例化对象时被调用。__construct()是构造函数,同时当函数名和类名相同的时候,也是构造函数,构造函数有两种表达方式。 但是当__construct和以类名为函数名的函数同时存在的时候,__construct将被调用,而以类名作为函数名的构造函数不被调用。 3、__destruct() 当删除一个对象或对象操作终止时被调用...
阅读全文
白盒系列之变量追踪引擎(一) 代码审计

白盒系列之变量追踪引擎(一)

一、白盒整体概括 在开始变量追踪的正式讲解之前,先概括的看一下目前各大厂对于白盒的使用情况,可以简单的概括为下图的模型。 上图列出了触发白盒扫描的几个关键节点,分别为开发、集成、发布阶段,目前大部分公司多在发布阶段进行强制卡点,如果发现存在严重漏洞,则会终止整个发布流程,确保应用不能带漏洞上线。发布阶段进行扫描是目前执行扫描最多的一个阶段,为了能够让开发者在发布之前就能够对漏洞进行修复,在代码集成,甚至本地开发阶段都会进行扫描。其实按照理想状态,在本地开发阶段进行扫描应该是开发者修复最好的时机,因为这个阶段开发者对于代码的印象最深,同时漏洞的展示效果也最好,能够通过ID...
阅读全文
Thinkphp5代码执行学习 代码审计

Thinkphp5代码执行学习

缓存类RCE 版本 5.0.0<=ThinkPHP5<=5.0.10 Tp框架搭建 环境搭建 测试payload ?username=syst1m%0d%0a@eval($_GET[_]);// 可以看到已经写入了缓存 漏洞分析 thinkphp/library/think/Cache.php:126 先跟踪一下Cache类的set方法 thi...
阅读全文
主机安全:洋葱Webshell检测实践与思考 代码审计

主机安全:洋葱Webshell检测实践与思考

前言 Webshell是网站入侵的常用后门,利用Webshell可以在Web服务器上执行系统命令、窃取数据等恶意操作,危害极大。Webshell因其隐秘性、基于脚本、灵活便捷、功能强大等特点,广受黑客们的喜爱,因此Webshell的检测也成为企业安全防御的重点,Webshell检测已是主机安全系统的标配功能。洋葱系统是腾讯自研的主机安全系统,Webshell检测是其基础功能之一,洋葱系统在2008年上线了第一代Webshell检测引擎,14年上线了动态检测功能(RASP)并在TSRC进行了众测,其后还增加了统计分析、机器学习等能力。2012年phpmyadmin某个分发节点被植入后门(CVE...
阅读全文
php代码审计学习之函数缺陷 代码审计

php代码审计学习之函数缺陷

感兴趣的可以参考一下PHP-Audit-Labs in_array函数缺陷 Wish List Code class Challenge { const UPLOAD_DIRECTORY = './solutions/'; private $file; private $whitelist; public function __construct($file) { $this->file = $file; $this->whitelist = range(1, 24); } public function __destr...
阅读全文
一次SQL注入到代码审计之路 代码审计

一次SQL注入到代码审计之路

一、找网站SQL注入点 在测试时后发现有一个信息查询框,就是下面这个图片显示的。一般信息查询框会和数据库存在交互。  我输入数字1,会正常提示木查询到相关信息。 那我们使用1′测试一下,发现不弹未查询到相关信息的提示框,也没有任何数据输出,大致判断这个点存在sql注入,并且不对输出报错信息。 大概猜测出SQL语句为 :  select * from A where id ='$_POST['id']'; 没有对用户输入的数据做任何过滤。 构造一个闭合语句再次确认一些是否确认存在sql注入...
阅读全文
从AST到100个某知名OA前台注入 代码审计

从AST到100个某知名OA前台注入

2019年2月在写这篇文章 挖掘暗藏ThinkPHP中的反序列利用链 , 寻找PHP反序列化的POP Chain时, 我就在想这种纯粹的体力劳动可不可以更现代化一点, 不仅仅是Ctrl+Shift+F这种机械重复的体力劳动, 当时了解了一些相关的项目/论文, 包括不限于Navex, Prvd, Cobra, Codeql. 鉴于Cobra代码开源, 也相对简单, 后来有一阵子某知名OA漏洞爆发, 于是参考了Cobra的PHP Parser尝试实现一个通过遍历Java AST(抽象语法树)进行漏洞挖掘的工具, 没想到效果出奇的好, 筛选出160个前台注...
阅读全文
DEDECMS伪随机漏洞 (一) :PHP下随机函数的研究 代码审计

DEDECMS伪随机漏洞 (一) :PHP下随机函数的研究

一 、开篇 在某次复现”dedecms前台任意用户登录漏洞重现及分析”漏洞过程中, 发现这个漏洞的利用点是需要注册并审核通过一个”0000001″用户, 但在实际操作中,发现很多站点注册用户后需要邮件校验,但实际没有配置SMTP, 也就不可能发出邮件,遂分析了其邮件校验的hash生成算法, 进而发现伪随机问题,本文不会从邮件hash算法入手,而是从cookie算法分析出发, 分析漏洞的原理和利用方法. 全文分析使用dedecms v5.7 sp2, 但就漏洞本身而言是全版本均存在的。 二 、本篇简介 主要研究和分析一下在PHP5和PHP7下mtrand/mtsrand和r...
阅读全文
通读审计之AACMS 代码审计

通读审计之AACMS

0×00 前言  其实没什么好说的,该cms不是主流的cms,但是感觉该cms是一篇很好的MVC框架的例子,故记录下来。给大家分享一下自己代码审计的经验。  Cms下载地址:http://www.mycodes.net/45/4324.htm  0×01 MVC框架的了解  首先我们需要对该cms进行通读代码,来具体了解一下该网站的结构,如何访问到某个模块,某个分支。否则就算我们挖到漏洞,也找不到利用点。  老样子,我们从 index.php 来进行代码审...
阅读全文
WordpPress ThemeREX Addons 插件安全漏洞深度分析 代码审计

WordpPress ThemeREX Addons 插件安全漏洞深度分析

0x00 前言 ThemeREX是一家专门出售商业WordPress主题的公司。ThemeREX Addons插件为ThemeREX公司开发的预装在所有ThemeREX商业主题中用来帮助其用户设置新站点和控制不同的主题的一款插件。根据相关预测,该插件预装在超过44000个网站上。   0x01 漏洞描述 WordPress ThemeREX Addons 2020-03-09之前版本中存在安全漏洞。未经授权的攻击者可利用该漏洞在后台添加一个管理员账号、或是查看所有账号信息等操作。   0x02 漏洞...
阅读全文
MySQL安全审计 代码审计

MySQL安全审计

一、说明 本篇文章主要说一说MySQL数据库安全审计控制点的相关内容和理解。 MySQL除了自身带有的审计功能外,还存在着一些其它的审计插件。 虽然遇到这些插件的概率不高,我还是把这些插件的基本参数都列出来,到时候如果真遇到了,也不至于一头雾水。 二、测评项 a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计; b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;  c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改...
阅读全文
PHP代码审计之入门实战 代码审计

PHP代码审计之入门实战

系统介绍 CMS名称:新秀企业网站系统PHP版 官网:www.sinsiu.com 版本:这里国光用的1.0 正式版 (官网最新的版本有毒,网站安装的时候居然默认使用远程数据库???迷之操作 那站长的后台密码岂不是直接泄露了?疑似远程数据库地址:server.sinsiu.net ) 下载地址:蓝奏云 Windows下使用PHPStudy可以直接安装,搭建起来还是很简单的。 防护策略 虽然这是一个不知名的小系统,但是安全加固还是考虑到的,很多本应该有漏洞的地方均被加固修复了...
阅读全文
代码审计之php.ini配置详解 代码审计

代码审计之php.ini配置详解

一、关于php ini介绍 php.ini apache在启动时php.ini被读取。对于服务器模块版本的php,仅在web服务器启动时读取一次。对于CGI和CLI版本,每次调用都会被读取 Apache Web服务器在启动时会把目录转到根目录,这将使得PHP尝试在根目录下读取php.ini,如果·存在的话。在php.ini中可以使用环境变量 User.ini 自php5.3.0起,PHP支持基于每个目录的.htaccess风格的INI文件。此类文件仅被CGI/Fastcgi sapi处理。 php_ini_* ...
阅读全文