安全矩阵

 找回密码
 立即注册
搜索
查看: 2343|回复: 0

javaweb代码审计记录(一)

[复制链接]

180

主题

231

帖子

1180

积分

金牌会员

Rank: 6Rank: 6

积分
1180
发表于 2022-5-2 01:46:30 | 显示全部楼层 |阅读模式

javaweb代码审计记录(一)


一、前言
        项目代码源自炼石计划的代码审计系统一。
二、使用到的工具
            idea
            idea插件(Free MyBatis Too)
            mysql
三、漏洞挖掘过程
        将代码部署完成后,进行正常访问。


        尝试挖掘sql注入,先通过搜索${对xml文件进行搜索发现存在几处


        发现有几个相对简单些,这里就不进行演示了,主要分析一个相对复杂一点的。


        发现是一个更新的语句,这个变量是使用${}方式,这种方式是存在sql注入。点击绿色箭头。进行跟踪


         选中该方法,进行跟踪


        发现是一个不可控参数,到这里,很多人就会觉得不可控参数,就没存在sql注入。不过我们可以,通过先插入数据,再让它查询加载过来。
        继续跟踪updateParentDeptStatus,因为updateParentDeptStatus调用了updateDeptStatus。


        发现updateDept这个入口,对提交的数据进行判断是否为空,如果不为空,则进行Ancestors更新,不过这里影响不是很大,主要看下面的一个更新操作


        我们可通过在数据包直接构造ancestors,对应的更新语句


      继续跟踪updateDept,找到调用地方


    寻找对应的web地方


       点击提交,对应数据包


        发现没有对应的ancestors参数,直接构造



        到数据库里面查看,发现已经成功修改


        构造update的报错查询语句

  1. 0,5) and extractvalue(1,concat('~',database()))#(
复制代码

        出现了异常,说明屏蔽了报错信息


        再次到数据库查看,发现攻击语句已经到了数据库里面。


        通过idea日志中发现,我们已经爆出数据库名


        总结:这是一个基础漏洞。。。。。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-30 09:43 , Processed in 0.012879 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表