Java 审计之xss审计要点

Java审计之xss审计要点0x00前言上篇文章讲了xss的一个简单审计,这篇文章可以来复盘一下上篇文章内容在上篇文章基础上做一个详细说明,以及其他的一些审计姿势。首发:Java审计之XSS

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java 审计之xss审计要点

0x00 前言

上篇文章讲了xss的一个简单审计,这篇文章可以来复盘一下上篇文章内容在上篇文章基础上做一个详细说明,以及其他的一些审计姿势。

首发:Java审计之XSS篇

0x01 审计流程

根据上篇文章来总结一下,我们首先是全局搜索了request.setAttribute 这个共享到request域的方法,查看他的传值类型,再跟踪到他的实体类里面,查看实体类中哪些地方是String类型的变量。只有String类型的。查询完这样以后,就需要查看哪些方法调用了哪些方法将我们的xss Payload添加进去,后面就可以追溯到dao层查看一下有没有添加进数据库里面。在查询和插入内容的方法里面需要留意一下有没有过滤。

0x02 ModelAndVIew详解

当视图解释器解析是ModelAndVIew,其中model本生就是一个Map的实现类的子类。视图解析器将model中的每个元素都通过request.setAttribute(name, value);添加request请求域中。这样就可以在JSP页面中通过EL表达式来获取对应的值。其实就是进行了一个简单的封装,方便于我们使用。

方法1:

定义格式:

public ModelAndView addObject(String attributeName, Object attributeValue)

实例:

1 ModelAndView mav=new ModelAndView("hello");
2 mav.addObject("time", new Date());

将一个对象共享到域中

方法2:

mav.getModel().put("name", "xiaoming");

0x03 CMS 审计

使用ModelAndView需要new一个对象,那么我们可以直接来全局搜索new ModelAndView来查找该关键字。

Java 审计之xss审计要点

点击一个存在该关键字的类,进行跳转到该类。

Java 审计之xss审计要点

这里实例化了一个对象叫model,跟踪看一下model都调用了哪些方法,如果调用addObject共享到域中,看他有没有调用过滤方法,没有的话,我们就可以来跟踪一下需要共享的值。哪些地方可以插入 xss的Paylaod。

Java 审计之xss审计要点

定位一下typeList变量是怎么来的

Java 审计之xss审计要点

这里就可以看到调用了webSiteImagesTypeServicewebSiteImagesTypeService.queryAllTypeList()方法进行返回的,存储到了一个list集合,WebSiteImagesType类型的。

再来定位到WebSiteImagesType实体类里面,看看都有哪些属性,查看有没有String类型的变量。

Java 审计之xss审计要点

typeName的地方是String类型的,可以去插入xss的Payload。

返回Controller查看调用的方法typeList值得获取调用得方法。

Java 审计之xss审计要点

ctrl+左键点击WebSiteImagesTypeSerivce跳转到该接口。

Java 审计之xss审计要点

选中接口,CTRL+H 查看该接口实现类。

Java 审计之xss审计要点

点击实现类,进行跟踪

Java 审计之xss审计要点

这里就查看到了 service层得queryAllTypeList会调用webSiteImagesTypeDaoqueryAllTypeList()查询进行返回且没有过滤,继续跟踪dao到。

Java 审计之xss审计要点

看到并没有使用注解来配置,那么就肯定是使用了xml的文件来进行配置了。

全局搜索一下dao的名称,并且指定类型为xml的文件,在开发中一般xml的映射文件会和dao接口的名字前面一样,然后加个mapper。

Java 审计之xss审计要点

点击跳转进去

Java 审计之xss审计要点

到这里后,就已经看到内容会从数据库的 EDU_WEBSITE_IMAGES_TYPE表里面去取值,并且返回。

下一步需要做的就是查看数据会从哪里去写入。

返回到Controller,看到下面还有个更新的方法,是可以对数据进行插入的。

Java 审计之xss审计要点

调用了WebSiteImagesTypeService方法跳转到实现类里面查看,有没有调用到过滤的方法。

Java 审计之xss审计要点

这里并没有调用到过滤的方法,而是直接调用webSiteImagesTypeDao.updateType直接传入值了,其实从Controller的更新方法追溯上去一点多此一举了,因为我们在跟踪查询方法的service接口的时候,其实就已经看到增删改查的方法了,这里只是为了逻辑更清晰一些。

跟踪到updatetype方法后, 查询映射文件,其实文件还是刚刚在定位查询方法时候的那个文件里面

Java 审计之xss审计要点

Java 审计之xss审计要点

这里得知该语句会从WebSiteImagesType取typeName和typeId的值,进行更新语句的填入。如果我们在对应的位置插入xss后,payload 会存储在WebSiteImagesTypetypeName然后再被带入到dao层去写入到数据库里面去。写入完成,访问页面服务器执行了查询方法的话就会返回xss的值,这时候输入输出都没有做过滤直接输出了,就导致了xss的产生。

下面来把环境启动,然后进行测试一下。

Java 审计之xss审计要点

查看漏洞地址

http://127.0.0.1:82/admin/imagetype/getlist

Java 审计之xss审计要点

点击修改名称进行修改。

xss执行了,但是闭合的时候没成功闭合,插崩了。后面的几个按钮都给覆盖了。

Java 审计之xss审计要点

去数据库将数据删除一下。

Java 审计之xss审计要点

重新打开一下。

Java 审计之xss审计要点

构造xss Payload,具体怎么构造这里就不做赘述了。

</td><script>alert("1")</script>

Java 审计之xss审计要点

0x04 结尾

在审计代码的时候会发现一些比较有意思的事情,比如刚刚查看的service接口中的增删改查方法,如果接口中一任意个方法没做过滤,其他的方法也不会去做一个过滤。刚刚审计的只是一个update的方法插入xss,但是如果是增加的方法呢?,当然也是可以的。但是这里的代码添加的方法不是直接去做一个设置,而是添加条新的并且是空的数据,后面需要修改成想要的数据。这样的话漏洞的位置还是在修改方法上面,而不是添加的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119916.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea2021.9 激活码【2021最新】[通俗易懂]

    (idea2021.9 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32P…

  • 电脑蓝屏报错0x00000006怎么办?蓝屏报错0x00000006解决方法

    电脑蓝屏报错0x00000006怎么办?蓝屏报错0x00000006解决方法1.首先进入系统,按键盘上的win+r组合键打开“运行”窗口,在运行框中输入msconfig并回车。2.在“系统配置”窗口中,将“加载启动项”选项前的勾去除。3.切换到服务栏界面,勾选“隐藏所有Microsoft服务”,然后点击“全部禁用”。4.接着切换到“启动”栏界面中,点击“全部禁用”,然后点击确定即可。…

  • dpu芯片_三星放弃自研架构

    dpu芯片_三星放弃自研架构近日,专注于智能计算领域的DPU芯片和解决方案公司中科驭数发布了其下一代DPU芯片计划,将基于自研的KPU(KernelProcessingUnit)芯片架构,围绕网络协议处理、数据库和大数据处理加速、存储运算、安全加密运算等核心功能,推出新一代DPU芯片,赋能金融科技、数据中心、混合云及边缘计算等高带宽、低延迟、数据密集型的计算场景。DPU,是DataProcessingUnit的简称,是面向数据中心的专用处理器。据中科驭数创始人兼CEO鄢贵海介绍,”DPU是最新发展起来的专用处理器的一个大类

  • pycharm永久激活码【2021最新】

    (pycharm永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23LNPMIJZT-eyJsaWNlbnNlSWQiOi…

  • IT需求分析_中国it技术牛人

    IT需求分析_中国it技术牛人  刚刚走过了非比寻常的2006,IT业将迎来一个怎样的2007?尤其是从采购角度来看,2007年有哪些特点和趋势?又有哪些因素将左右2007年的市场需求?  预测2007年的IT市场需求和采购趋势,则一定要先看整体的经济增长速度。  来自法国国家统计及经济研究所(INSEE)的预测,2007年上半年,美国经济放缓将连带着世界经济发展速度的回落。据INSEE的统计,2006年,中国工业…

  • pycharm中pip安装地址更改_pycharm怎么安装pip库

    pycharm中pip安装地址更改_pycharm怎么安装pip库pycharm修改pip源为清华源-提高下载速度让PIP源使用国内镜像,提升下载速度和安装成功率。以后文章更新在https://oldpan.me国内pip源:清华大学https://pypi.tuna.tsinghua.edu.cn/simple/在使用pycharm时,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号