闲言少序,书归正传
SQL注入
Mapper中存在不少地方用${}进行拼接,这里我仅仅跟着一个SQL跟踪
src/main/resources/mybatis/inxedu/article/ArticleMapper.xml
查看dao的调用src/main/java/com/inxedu/os/edu/dao/article/ArticleDao.java
src/main/java/com/inxedu/os/edu/service/impl/article/ArticleServiceImpl.java
src/main/java/com/inxedu/os/edu/controller/article/AdminArticleController.java
漏洞复现:
任意文件上传
上传ico
针对接口进行debug
这个类封装的真的离谱,只对jsp进行过滤。别的直接放行。
基本上后端所有文件上传都是用的这个接口服务,后台随便RCE
越权
使用admin查看用户数据
退出替换普通用户cookie
使用此用户cookie也可进行操作
漏洞分析
没有任何关于权限校验的代码前台用户也可以进行越权。
存储XSS
前台用户提问
对应的api接口为/questions/ajax/add
这里的title和content已经被iset到questionsTagRelation
属性中了,之后
调用了questionsTagRelationService.addQuestionsTagRelation
方法
src/main/java/com/inxedu/os/edu/service/impl/questions/QuestionsTagRelationServiceImpl.java
之后便是调用dao层,调用xml