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模板注入漏洞
10840 1
|
存储 XML SQL
Java审计之XSS篇
继续 学习一波Java审计的XSS漏洞的产生过程和代码。
175 0
Java审计之XSS篇
|
SQL 安全 前端开发
Java审计之SQL注入篇
本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。
314 0
|
存储 Java 应用服务中间件
Java代码审计之jspxcms审计(三)
Java代码审计之jspxcms审计
481 0
Java代码审计之jspxcms审计(三)
|
Java
Java代码审计之jspxcms审计(二)
Java代码审计之jspxcms审计
257 0
Java代码审计之jspxcms审计(二)
|
存储 Java 数据库连接
Java代码审计之jspxcms审计(一)
Java代码审计之jspxcms审计
263 0
Java代码审计之jspxcms审计(一)
|
Java 测试技术 数据安全/隐私保护
|
XML 前端开发 JavaScript
|
7天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
37 6
|
22天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
下一篇
DataWorks