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


相关文章
|
12月前
|
安全 Java API
Java审计之Freemarker模板注入漏洞
Java审计之Freemarker模板注入漏洞
10319 1
|
12月前
|
存储 XML SQL
Java审计之XSS篇
继续 学习一波Java审计的XSS漏洞的产生过程和代码。
125 0
Java审计之XSS篇
|
12月前
|
SQL 安全 前端开发
Java审计之SQL注入篇
本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。
278 0
|
存储 Java 应用服务中间件
Java代码审计之jspxcms审计(三)
Java代码审计之jspxcms审计
390 0
Java代码审计之jspxcms审计(三)
|
Java
Java代码审计之jspxcms审计(二)
Java代码审计之jspxcms审计
217 0
Java代码审计之jspxcms审计(二)
|
存储 Java 数据库连接
Java代码审计之jspxcms审计(一)
Java代码审计之jspxcms审计
202 0
Java代码审计之jspxcms审计(一)
|
Java 测试技术 数据安全/隐私保护
|
XML 前端开发 JavaScript
|
2天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
1天前
|
Java
阅读《代码整洁之道》总结(1),java多线程面试
阅读《代码整洁之道》总结(1),java多线程面试