java代码审计-因酷教育软件v2.0.6

安装

下载链接:http://down.admin5.com/jsp/132874.html

本地环境用的是IDEA+Tomcat8+mysql5.7.25+java1.8

环境搭建

这里导入数据库有一个坑

需要把0000-00-00 00:00:00全部替换成如图所示,导入即可,最后点击运行界面如下。

1
2
3
4
前台http://127.0.0.1:82/ 
测试账号:demo@inxedu.com 111111
后台 http://127.0.0.1:82/admin
测试账号:admin 111111

开始审计

SQL注入

这个框架使用的是Mybatis框架,那么需要注意的是这个框架的安全问题,总结一句如下:

MyBatis框架中常见的SQL注入

1
在编写MyBatis的映射语句时,尽量采用“#{xxx}”这样的格式。若不得不使用“${xxx}”这样的参数,要手工地做好过滤工作,来防止SQL注入攻击。

那么全局搜索,一共有17处

这里找到src/main/resources/mybatis/inxedu/course/CourseFavoritesMapper.xml

搜索源码,主要需要从Dao层->service层->Controller层

可以看到这里两处取出id参数之后并没有经过任何过滤,由此造成sql注入。

任意文件上传

全局搜upload

构造表单直接上传