java代码审计之xss

个人对审计的理解,互相学习。

漏洞修复说明:
此类相关漏洞源码已修复,可在官网查看https://www.inxedu.com/

反射型xss

自行搭建系统后发现一处反射型xss,如图

数据包

涉及到已知参数有queryCourse.courseName,路径为/front/showcoulist
从而定位CourseController.java

可以看到搜索课程列表中,以集合形式传递,以此向上的方法中追踪到courseService中,这里定义了一些查询课程的接口


再根据查询相关的接口在定义接口的实现类里查询具体实现的方法,49行,在CourseMapper中进行数据库查询,直接返回一个集合

这里是CourseMapper中对应查询queryCourseList的sql语句

然后直接将内容返回到前台的页面上,其实${queryCourse.courseName}是一个EL表达式,代表queryCourse这个实体类下面courseName的值,就是我们查询课程的内容

存储型xss

这里先看结果


漏洞参数为article.title
漏洞url:/admin/article/updatearticle
根据漏洞地址可以找到AdminArtcleController.java

new了一个对象 ,获取到参数修改数据库数据,存储到数据库中,再返回到原来的页面中
做了一个判断如果为null就跳转默认地址

直接将内容返回到前台的页面上,${article.title}是EL表达式,

在AdminArtcleController.java控制层涉及到的方法,(存储的过程)
ArticleService.java 和ArticleDao.java代码是一样的,其中定义了一些修改的方法,从而被AdminArtcleController.java调用
这里定义了UpdateArticle方法和updateArticleContent方法

ArticleDaoImpl.java
实现类是实现ArticleDao.java层中UpdateArticle和updateArticleContent方法的接口

ArticleDao层负责和数据库进行交互,
这里可以看ArticleMapper.xml去执行更新的sql语句

Article定义字段,封装好为实体类,可以直接调用,故在整个存储的过程中没有任何的过滤

  • 发表于 2021-11-15 10:00:11
  • 阅读 ( 7696 )
  • 分类:代码审计

0 条评论

请先 登录 后评论
fan
fan

4 篇文章

站长统计