java审计之ofcms(一)

简介: java审计之ofcms

搭建环境

Github地址如下:

"https://github.com/yuzhaoyang001/ofcms"

然后使用idea导入war包

d7a9d8f13fcf25fbead5ae1e81699f3f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

801974a2600db66e59a636ad9a4909a9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

aac2821c724a5179a4401d083eae6569_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

配置tomcat

14a6e6c7a4e03cb0c133fb1909b5cff8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

然后创建数据库

0a1f6145b8a3ac1805bb199f1ed87b53_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

运行sql文件

849eb418c443884a7fd296327206f58c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b15b0887add661e07e0eba6e3e805300_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

然后配置好数据库文件

bb57ce22c1d4ff8ea30c62b1fc2cba3f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

根据自己安装的mysql版本配置pom.xml

e60e3233879b0284733a72ade48a71cd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

后台地址:http://localhost:8081/ofcms_admin_war/admin/login.html

账号,密码 admin / 123456

先大概过一遍功能点

因为前台看不到啥点所以就登录到后台观看

sql注入

e6af316765e77d9a1472d6fbe87dac22_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在这里抓包

a1e291d05cfd63ec1448cef365d649cb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

根据这个 找到 controller层

5d234331922c1403f25527837536b6dd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

420c33c1875084bd78302db5728a3d9b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现这里接收sql参数 然后update执行  我们打上断点来进行调试

随便输入一个

98a1ce5a3d25850ec0fa8465f83c6ad7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

然后回到idea

ceee984680927c6a703375720c74c271_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

227bf6648b96ef71e78e188804eba64a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

可以看到外面输入的值

8d6f0f51c6251b501419c0cfbdf1e3d6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

进入update函数

125a9ecd7a11960bb6dc7e5285b60580_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

继续

3dbec145cc01d5f9d9770b1cd065ff47_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

经过一直调试

8ff74a61657d83dbc8ac2e8d349012df_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

最后进入到这里执行  这里采用了预编译但是 是把整个sql语句进行预编译 不是把sql的参数 这样根本起不到效果

并且还进行了回显

10eca10e06b729b779806a4f3dd5484a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

da389bd8aae3e8297ded9e7b3a4a556e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

用报错语句测试

因为是executeUpdate

所以只能用增删改的sql语句

update of_cms_ad set ad_id=updatexml(1,concat(1,user()),1)

d3ce74d4ce2d3de5757eee00e2a48faa_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


相关文章
|
安全 Java API
Java审计之Freemarker模板注入漏洞
Java审计之Freemarker模板注入漏洞
10729 1
|
存储 XML SQL
Java审计之XSS篇
继续 学习一波Java审计的XSS漏洞的产生过程和代码。
171 0
Java审计之XSS篇
|
SQL 安全 前端开发
Java审计之SQL注入篇
本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。
309 0
|
存储 Java 应用服务中间件
Java代码审计之jspxcms审计(三)
Java代码审计之jspxcms审计
470 0
Java代码审计之jspxcms审计(三)
|
Java
Java代码审计之jspxcms审计(二)
Java代码审计之jspxcms审计
254 0
Java代码审计之jspxcms审计(二)
|
存储 Java 数据库连接
Java代码审计之jspxcms审计(一)
Java代码审计之jspxcms审计
253 0
Java代码审计之jspxcms审计(一)
|
Java 测试技术 数据安全/隐私保护
|
XML 前端开发 JavaScript
|
8天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
3天前
|
存储 设计模式 分布式计算
Java中的多线程编程:并发与并行的深度解析####
在当今软件开发领域,多线程编程已成为提升应用性能、响应速度及资源利用率的关键手段之一。本文将深入探讨Java平台上的多线程机制,从基础概念到高级应用,全面解析并发与并行编程的核心理念、实现方式及其在实际项目中的应用策略。不同于常规摘要的简洁概述,本文旨在通过详尽的技术剖析,为读者构建一个系统化的多线程知识框架,辅以生动实例,让抽象概念具体化,复杂问题简单化。 ####