主页 > 网络知识 > JAVA代码审计之SSM框架与示例

JAVA代码审计之SSM框架与示例

Java SSM框架代码审计、SSM框架各个成之间的关系

https://foreti.me/2017/07/20/ssm-framework/ 审计的触发点web.xml文件

tomcat启动后会自动加载web.xml中的配置,首先是生成DispatcherServlet类,将我们的请求转发至我们的SpringMVC中去,交由我们SpringMVC的Controller来进行接下来的处理。生成DispatcherServlet时的初始化参数contextConfigLocation参数,Spring会根据这个参数去加载所有逗号分隔的xml文件,如果没有这个参数,Spring默认加载WEB-INF/DispatcherServlet-servlet.xml文件web.xml中的几项配置

 

JAVA代码审计之SSM框架与示例

 

<!–spring 的监听器–>

 

JAVA代码审计之SSM框架与示例

 

<!– spring 主配置文件的 路径 和名字 –>

 

JAVA代码审计之SSM框架与示例

 

<!– 过滤器 编码格式 –>

 

JAVA代码审计之SSM框架与示例

 

applicationContext.xml

applicationContext.xml:是Spring的核心配置文件,例如生成Bean,配置连接池,生成sqlSessionFactory

sqlSessionFactory:SqlSessionFactory是MyBatis的关键对象,SqlSessionFactory对象的实例可以通    SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例

SqlSession:SqlSession是MyBatis的关键对象,可以用SqlSession实例来直接执行被映射的SQL语句

mybatis框架主要是围绕着SqlSessionFactory进行的,创建过程大概如下

定义一个Configuration对象,其中包含数据源、事务、mapper文件资源以及影响数据库行为属性设置settings通过配置对象,则可以创建一个SqlSessionFactoryBuilder对象

通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例。 

SqlSessionFactory 的实例可以获得操作数据的SqlSession实例,通过这个实例对数据库进行操作。

而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来创建。

JAVA代码审计之SSM框架与示例

SSM框架审计之SQL注入漏洞

打开项目到登录窗口,登录发送数据请求的URL,将/login在IDEA中使用crtl+shift+f进行搜索,找到控制器@RequestMapping(value =    ”/login”,method = RequestMethod.POST)

 

JAVA代码审计之SSM框架与示例

先看下是否有过滤器防止SQL注入,在web.xml中找到filter标签,crtl+左键进入到对应的过滤器类中    

JAVA代码审计之SSM框架与示例

这里使用了动态代理来对request域中的数据进行过滤等操作,继续跟进        

 

 

JAVA代码审计之SSM框架与示例

动态代理中对request域中的数据进行了XSS的过滤,并进行了实体化编码修改数据到request域中,并没有对SQL语句进行过滤等操作    

 

 

JAVA代码审计之SSM框架与示例

回到控制器中,跟进控制器中的login方法来到接口中,接口interface IMemberService 定义了login方法,使用crtl+alt+b进入该接口实现类中    

 

 

JAVA代码审计之SSM框架与示例

该接口登录方法调用了memberDao.login方法,这里使用的是SSM框架,所以Dao层对应的方法都有相应的Map.xml中对应的SQL语句    

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!