JAVA代码审计之S *** 框架与示例

hacker4年前黑客工具289

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

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

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

  先看下是否有过滤器防止SQL注入,在web.xml中找到filter标签,crtl+左键进入到对应的过滤器类中 这里使用了动态 *** 来对request域中的数据进行过滤等操作,继续跟进

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

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

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

  Dao层接口,接口名字对应着Map文件,直接找对应的Map.xml文件即可,这里是MemberMap.xml

  这里使用了预编译没有对应的漏洞

  全局搜索${,因为mybatis存在注入的地方就是使用了该符号作为SQL语句拼接。

  找到该xml文件,文件名为GroupTopicMapper.xml,找对应的Dao文件即可,搜索GroupTopicDao,找到该文件,并且搜索之前xml语句的id值即为Dao中的 *** 名,找到如下

  找到Dao文件之后需要找到对应的Service,这里使用crtl+alt+h找该 *** 在那里被调用过,找到如下文件

  仍然找改 *** 在那里被调用,使用crtl+alt+h,发现以下俩个crontoller调用了改 ***

  这里使用crtl+alt+h查看该 *** 在那里调用,继续跟踪找到前端url,这里看下改 *** 的requestmapping中的值即可找到对应的url,只是这里并不存在SQL注入,可控的参数不会进入到语句中

  访问发布评论页面,点击提交数据,查看数据提交的uri

  之前看到web.xml中配置有过滤器,MVC执行顺序是先经过过滤器,在经过控制器,所以先去过滤器中查看是否有对应的处理

  使用了动态 *** 对request中的数据进行处理,跟进 *** ,这里获取参数值,并且对参数调用了cleanXSS进行过滤,找到cleanXSS ***

  cleanXSS *** 中先调用dealScript和dealStyle *** 对xss进行处理

  这里对script标签和style标签进行了正则,并进行了实体化编码,但是只对正则匹配到了的xss进行了实体化编码,而且正则可以绕过,故存在xss漏洞

  回到cleaXSS *** 中,对这俩个标签处理完之后,对事件进行了正则匹配并替换,在提交处查看处理后的结果

  然后回到控制器中,crtl+shift+f搜索指定的路径即可,@respinseBody将 *** 返回值作为返回体中的内容

  跟进save *** ,crtl+alt+b进入。这部分是对提交的内容的规范做判断

  跟进该 ***

  crtl+alt+b进入 *** 后,这里是注解方式绑定mapper中的 *** 与provider中的 *** 绑定

  @options的选项指定把获取到的主键值注入到 XXX(实体类) 的 id 属性。

   *** 中返回了sql语句

  进入文章发布面,利用编辑器插入一个链接,保存的发送的数据的uri如下,在全局搜索该Url找到控制器

  首先进行了拦截器进行校验用户是否进行登录,使用@valid进行数据校验

  @Valid注解进行数据验证

  前端发送数据包,获取uri,再idea重全局搜索/SSRF/task1

  从打开的连接获取一个 InputStream,可以从中得到 URL 请求的响应流。在调用这个 *** 时,会自动调用 URLConnection.connect() *** ,也就是建立连接。所以一旦调用 getInputStream() 连接就已经建立好了

  前端发送数据包,获取uri,再idea重全局搜索/xxe/simple

  跟进parseXml *** ,这里应该是解析xml文件的 *** ,这里设置了允许外部xml实体,使用Unmarshal解析了读入的xml文件,故产生漏洞

  路径穿越漏洞

  上传个人资料,看到文件名被拼接到了url后面

  查看提交了url,在IDEA中全局搜索PathTraversal/profile-upload。

  跟进 *** ,在 *** 中直接用传来的名字和路径进行了拼接导致了目录穿越

  需求是输入安全问题进行验证成功后,进行密码修改

  提交后的数据请求包如下

  在idea中搜索uri,定位到相对应的代码

  跟进parseSecQuestions(req) *** ,这里获取了请求体中的参数,并将包含secQuestion的键值放入了userAnswer的map中,并返回赋值给了submittedAnswers的map

  从感觉中判断应该是第二个If应该是返回密码修改的 *** ,那我就想办法看是否能绕过限制进入第二个if语句中,跟进 ***

  这里我们只要让其执行之一个If,而不去执行剩下的if语句即可,可以将请求体中的secQuestsion0\1的数字替换即可,返回true

  *本文作者:WhyNotD,转自FreeBuf

相关文章

找黑客帮忙找号(黑客接单靠谱吗)

帮忙盗号怎么找黑客 1、黑客但他的发展方向是好的黑客。帮忙盗号接单靠谱吗讲了这么多废话。他决心以约伯为实验对象,呵呵,我爱东城绫,她的声优也喜欢,黑客接单要是拿下了。此外。如Director可以在几种...

黑客侵略电脑的视频(电脑黑客攻击视频)

黑客侵略电脑的视频(电脑黑客攻击视频)

本文导读目录: 1、黑客是怎么入侵电脑的? 2、介绍几部电脑病毒,防火墙和电脑黑客入侵防御电影或电视剧 3、黑客入侵电脑后可以查看我的文件? 还可以下载文件? 4、电脑黑客入侵,他人电脑的...

黑客知道身份证号安全吗(查身份证号的黑客是真的吗)

黑客知道身份证号安全吗(查身份证号的黑客是真的吗)

本文目录一览: 1、别人知道了我的身份证号码,手机号码和姓名会有危险吗? 2、别人知道自己的身份证号码有危险吗? 3、黑客知道身份证号码不会有事把 别人知道了我的身份证号码,手机号码和姓名会...

黑客免费帮忙盗QQ(找黑客帮忙找回qq)

QQ被盗了,只要在登陆处点击那个忘记密码。会出现申诉的一个网页、只要你记得你QQ三个或者一个好朋友的QQ号码,和你曾经改过或者用过的密码。填写完毕之后。 2009-06-06找个黑客帮我盗回QQ号90...

开个串串店要多少钱?开个串串店怎么样?

开个串串店要多少钱?开个串串店怎么样?

串串香是受到许多人喜爱的一种美食,不少消费者对串串下谁人的口感感想很满足,尤其是行业中的知名品牌,串串香加盟给消费者带来纷歧样的美食体验。此刻全国多个都市都拥有串串香加盟的店肆,生意尤其的火爆,不少消...

我是黑客的英语怎么写(我是黑客英文)

我是黑客的英语怎么写(我是黑客英文)

本文导读目录: 1、我想知道黑客是什么 2、黑客的英语单词怎么说 3、黑客的英语是? 4、黑客到底是什么东西 !! 那位大哥能详细的告诉我 5、我想知道黑客是什么?是个病毒吗?还是别的...