代码编织梦想

写在前面

好久没碰过Javaweb了,但是感觉自己配环境的时候还是满熟练的哈,这一篇算是超级简单那种了,就开启我的Java审计之旅吧

环境配置

我这里是老古董无敌兼容版本Jdk1.8,开启配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析

漏洞点在http://url/admin/system/generate/create.json?sqlid=,在com/ofsoft/cms/admin/controller/system/SystemGenerateController.java,能看到这里直接接收了sql参数
在这里插入图片描述
看看传参方式,跟踪getpara函数,只是一个get请求罢了
在这里插入图片描述

再来跟踪update方法

public static int update(String sql) {
        return MAIN.update(sql);
    }

再跟进

public int update(String sql) {
        return this.update(sql, DbKit.NULL_PARA_ARRAY);
    }

终于到了最关键的地方吧,这里...是可变长参数,也就是相当于一个数组,能够传入0个至n个参数,好久没碰java有点忘了,一般可以用foreach取得每个参数

public int update(String sql, Object... paras) {
        Connection conn = null;

        int var4;
        try {
            conn = this.config.getConnection();
            var4 = this.update(this.config, conn, sql, paras);
        } catch (Exception var8) {
            throw new ActiveRecordException(var8);
        } finally {
            this.config.close(conn);
        }

        return var4;
    }

看到先建立数据库链接,再执行update(也太多update了,吐槽,委屈

int update(Config config, Connection conn, String sql, Object... paras) throws SQLException {
        PreparedStatement pst = conn.prepareStatement(sql);
        config.dialect.fillStatement(pst, paras);
        int result = pst.executeUpdate();
        DbKit.close(pst);
        return result;
    }

我们甚至能看到这里还是高科技用了预编译可惜没用,我们传入的完整sql语句直接被执行了,没有一点点过滤,真拉跨,当然既然是update那就直接配合报错注入吧,payload是

update of_cms_link set link_name=updatexml(1,concat(0x7e,(user())),0) where link_id = 4

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/solitudi/article/details/117046188

代码审计入门笔记—分析一个旧版本 espcms sql 注入漏洞_信安工匠的博客-爱代码爱编程

最近在读《代码审计:企业级 Web 代码安全架构》,作者是尹毅。 我的想法是,精读这本书,从而入门 PHP 代码审计,能够利用工具检测一些轻量级 CMS 的漏洞,分析代码逻辑,理解漏洞原理,尝试编写 POC 和 Paper

ofcms v1.1版本 idea 部署步骤及相关问题 开源java cms_oufu的博客-爱代码爱编程

说明 鉴于部分同学部署ofcms在idea存在问题,故编写此文档简述部署步骤。如有出入,望请指正。 项目地址:https://gitee.com/oufu/ofcms  如有问题加QQ群: ①185948055 从码云导入项目到idea File》New》Project from Version Control》Git,如图: URL:ht

lib之过?java反序列化漏洞通用利用分析-爱代码爱编程

2019独角兽企业重金招聘Python工程师标准>>> 转: https://www.sebug.net/vuldb/ssvid-89723?from=groupmessage&hmsr=toutiao.io&isappinstalled=0&utm_medium=toutiao.io&

java代码审计自学:sql注入篇-爱代码爱编程

0x00 前提 主要是因为自己的学习Java 代码审计中的学习思路吧,主要自己一个人学习,有点闭门造车,百度学习法,但是还是记录一下,也分享一下,也便于将来的总结和反思,如果我能终能学到什么,我也会重新梳理思路,为那些自学者提供一个好的思路,所以有了下面的系列文章java代码审计自学篇。 0x01 漏洞原理 虽然基础,但是还是介绍一下吧 SQL 注

【学习笔记】代码审计实战之SQL注入漏洞-爱代码爱编程

大多数php框架都会对sql操作有封装,例如findone() get()where()这样的函数,用来接收字符串或者数字。 框架对数组的值进行过滤或者参数绑定,防止sql注入 在sql中用两个反引号包裹数据表的字段名 危险函数findall() findone() where() 判断特征:拼接sql语句的where条件阶段,对于字段名不过滤或者

Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防-爱代码爱编程

前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。 一、Mybatis的SQL注入 Mybatis的SQL语句

Statement数据库操作接口-爱代码爱编程

1、创建 Statement 对象: 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法createStatement 创建,如下列代码段中所示 package JDBC;//导入包 import com.mysql.cj.protocol.Resultset; import jav

java sql注入包_java代码审计之SQL注入-爱代码爱编程

前言 在java中,操作SQL的主要有以下几种方式: •java.sql.Statement •java.sql.PrepareStatment •使用第三方ORM框架,MyBatis或者Hibernate java.sql.Statement java.sql.statement是最原始的执行SQL的接口,使用它需要手动拼接SQL语句。

java代码审计思维导图_代码审计-MetInfo 6.0.0 sql注入漏洞-爱代码爱编程

首先漏洞存在于app\system\message\web\message.class.php文件中,变量{$_M[form][id]}直接拼接在SQL语句中,且验证码检测函数是在SQL语句查询之后,这也就造成了我们可以无视验证码检测函数,进行SQL注入。具体问题函数代码如下: $met_fd_ok=DB::get_one("select * f

初识java代码审计——ofcms 1.1.4内容管理系统代码审计-爱代码爱编程

目录 壹   ofcms环境搭建(避坑指南) 贰   从ofcms出发浅析javaweb项目目录结构及其功能 叁   CVE-2019-9614 SSTI模板注入漏洞 肆   任意文件上传漏洞 伍   存储型XSS漏洞 陆   后台SQL注入漏洞     壹   ofcms环境搭建(避坑指南) 四月底开始入手java代码审计,从一开始的

[漏洞挖掘]SRC-狮子鱼CMS-SQL注入-爱代码爱编程

狮子鱼cms-SQL注入 狮子鱼CMS ApiController.class.php 参数过滤存在不严谨,导致SQL注入漏洞 FOFA语法: “/seller.php?s=/Public/login” 后台登录界面 漏洞点:ApiController.class.php public function goods_detail(

记一次不完整的java cms白盒审计-爱代码爱编程

这个源码是CicadasCMS,一个开源的cms,在机缘巧合的情况下对该源码进行练习审计。 在pom.xml的文件中找到了是又shiro框架搭建的网站既然有shiro,则去看一下shiro的配置文件是否有什么存在配置错误或者是未权鉴等漏洞刚好看到了druid组件,第一个想到的是该组件容易有未授权访问漏洞,全局搜索druid。找到了DruidConfigur

【网络安全】}ofCMS代码审计-爱代码爱编程

来先看看主要的目录结构吧(粗略)。 核心代码去瞧瞧,我的思路一般都是看看能够登入的地方(下面是我直接找到的后台管理登入系统)。 全局搜索一下。 【技术资料】 这算漏洞吗? 进入看了一下,但是没什么用,不能强行爆破。有限制账号登入次数。但是这里有个可以探测的,就是管理员的账号,账号的对错分别的得到提示不一样。算个小小的漏洞? 路径遍历

(渗透学习)代码审计 -- 1 (SQL注入漏洞)-爱代码爱编程

语言:PHP 工具:Seay代码审计系统 挖掘技巧: 特定函数:select、insert、update、delete、sql执行语句 可控变量:带$的变量  (如select * from XXX where id = $id limit 0,1) 思路: 先导入源码,全局搜索select,选择不区分大小写 其中有两处是存在可控变量$ID,