因酷开源在线网校系统是由北京因酷时代科技有限公司研发并推出的国内首家Java版开源网校源代码建站系统。
本文是inxedu cms 漏洞分析学习的第一篇,将围绕sql注入、xss漏洞进行分析学习,大纲:
1、环境搭建 2、sql注入漏洞分析 3、反射型xss漏洞分析 4、存储型xss漏洞分析
漏洞目录:
1、sql注入(本篇)
2、反射型xss(next)
3、存储型xss(next)
4、越权漏洞(next+)
1、下载源码(v2.0.6),使用idea导入
然后更改配置文件:
配置tomcat:
然后run运行
①SQL注入
通过官方文档介绍以及项目结构很容易知道,项目源码使用的是ssm框架,那么首先来看sql注入,项目使用到了mybatis框架,所以sql语句的定义会在两种地方:1.在dao层使用注解的方式编写;2.使用传统的xml方式编写
根据源码目录发现存在*mapper.xml,所以是用的方式2,那么我们定位到ArticleMapper.xml:
全局搜索$,因为$是对传参进行直接拼接,容易造成sql注入,而#是使用了预编译,可以看到在删除文章的语句中,对value参数直接拼接进sql语句,并且指定的数据类型为String字符串类型,所以这里肯定是存在sql注入的
那么我们要往前回溯,先找到mapper对应的dao,ArticleDao.java:
ArticleDao.java的实现类:
再看一下service接口:ArticleService.java
ArticleService.java的实现类:
然后看contoller:AdminArticleController.java
这里将http请求传入的acticelId参数赋值给artidArr数组,然后对其进行遍历,简单判断是否为空且长度是否大于0,没有进行任何过滤,直接传入deleteArticleByIds()方法执行
跟进deleteArticleByIds()方法:
所以是存在sql注入漏洞的,sqlmap跑一下:
文先分析到这里,整体篇幅可能会比较长,所以后续再另写文章对其他漏洞进行记录
点个赞和在看吧,欢迎转发!
原文始发于微信公众号(哈拉少安全小队):【java审计实例】I*** cms 漏洞详细分析学习(1)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论