xiao1star2025-10-27文章来源:SecHub网络安全社区
办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,极大提高公司的办公效率。oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。
查看pom.xml文件,发现有使用mybatis框架

Ctrl+Shift+R全局搜索对${查看xml文件是否使用了这种拼接形式的sql语句,发现是存在的

进入address-mapper.xml中,发现是AddressMapper接口中的allDirector中的pinyin参数

进入AddressMapper接口中,pinyin是allDirector方法的第二个参数

Ctrl键点击该方法,查看谁调用了该方法

发现是AddrController调用了该方法,同时知道了该功能的路由是在\outaddresspaging下,控制的参数是alph
因此直接访问\outaddresspaging这个页面,对alph参数sql注入即可
总结
刚刚我们是逆着进行了代码审计,现在我们正向梳理一下整个思路
outaddresspaging,会从前端获取一个alph的参数并且会作为调用mapper层的allDirector方法的参数注意:在正常的javaweb中是controller层–>service层–>mapper层

address-mapper.xml中对yinpin参数的赋值使用的是${},${}会将用户输入的参数内容直接拼接到sql语句中,没有任何预编译以及过滤进而导致了sql注入
对外部通讯录的搜索目录进行抓包获取


将获取到的数据包内容进行使用sqlmap进行sql注入的测试

python sqlmap.py -r 1.txt --level=5 --batch
