【java审计实例】I*** cms 漏洞详细分析学习(1)

admin 2022年2月1日22:29:29评论224 views字数 959阅读3分11秒阅读模式

【java审计实例】I*** cms 漏洞详细分析学习(1)

01 CMS简介

因酷开源在线网校系统是由北京因酷时代科技有限公司研发并推出的国内首家Java版开源网校源代码建站系统。


本文是inxedu cms 漏洞分析学习的第一篇,将围绕sql注入、xss漏洞进行分析学习,大纲:

1、环境搭建 2、sql注入漏洞分析 3、反射型xss漏洞分析 4、存储型xss漏洞分析



漏洞目录:

1、sql注入(本篇)2、反射型xss(next)3、存储型xss(next)4、越权漏洞(next+)




【java审计实例】I*** cms 漏洞详细分析学习(1)

02 环境搭建


1、下载源码(v2.0.6),使用idea导入

【java审计实例】I*** cms 漏洞详细分析学习(1)



然后更改配置文件:

【java审计实例】I*** cms 漏洞详细分析学习(1)



配置tomcat:

【java审计实例】I*** cms 漏洞详细分析学习(1)


【java审计实例】I*** cms 漏洞详细分析学习(1)



然后run运行

【java审计实例】I*** cms 漏洞详细分析学习(1)





【java审计实例】I*** cms 漏洞详细分析学习(1)

03 漏洞分析过程

①SQL注入

通过官方文档介绍以及项目结构很容易知道,项目源码使用的是ssm框架,那么首先来看sql注入,项目使用到了mybatis框架,所以sql语句的定义会在两种地方:1.在dao层使用注解的方式编写;2.使用传统的xml方式编写



根据源码目录发现存在*mapper.xml,所以是用的方式2,那么我们定位到ArticleMapper.xml

全局搜索$,因为$是对传参进行直接拼接,容易造成sql注入,而#是使用了预编译,可以看到在删除文章的语句中,对value参数直接拼接进sql语句,并且指定的数据类型为String字符串类型,所以这里肯定是存在sql注入的

【java审计实例】I*** cms 漏洞详细分析学习(1)



那么我们要往前回溯,先找到mapper对应的dao,ArticleDao.java

【java审计实例】I*** cms 漏洞详细分析学习(1)



ArticleDao.java的实现类

【java审计实例】I*** cms 漏洞详细分析学习(1)



再看一下service接口:ArticleService.java

【java审计实例】I*** cms 漏洞详细分析学习(1)



ArticleService.java的实现类:

【java审计实例】I*** cms 漏洞详细分析学习(1)



然后看contoller:AdminArticleController.java

这里将http请求传入的acticelId参数赋值给artidArr数组,然后对其进行遍历,简单判断是否为空且长度是否大于0,没有进行任何过滤,直接传入deleteArticleByIds()方法执行

【java审计实例】I*** cms 漏洞详细分析学习(1)



跟进deleteArticleByIds()方法:

【java审计实例】I*** cms 漏洞详细分析学习(1)



所以是存在sql注入漏洞的,sqlmap跑一下:

【java审计实例】I*** cms 漏洞详细分析学习(1)



文先分析到这里,整体篇幅可能会比较长,所以后续再另写文章对其他漏洞进行记录




☆ END ☆

点个赞和在看吧,欢迎转发!

【java审计实例】I*** cms 漏洞详细分析学习(1)





原文始发于微信公众号(哈拉少安全小队):【java审计实例】I*** cms 漏洞详细分析学习(1)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月1日22:29:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【java审计实例】I*** cms 漏洞详细分析学习(1)http://cn-sec.com/archives/761783.html

发表评论

匿名网友 填写信息