最新要闻
- 天天视点!被雷电瞄准时身体会有预兆:如果在乌云下毛发突然竖起 赶紧躲避
- 世界热议:全球一半人口2035年可能超重:总量超过40亿
- 全球资讯:石家庄买一根火腿肠就能免费坐地铁 官方回应:鼓励绿色出行
- 一本院校招聘会现多家酒店招洗碗工引热议 最低工资2千多:官方回应
- 焦点报道:又一起!美国一小型飞机坠毁后起火 已致1死2伤
- 观天下!密密麻麻!地震后松毛虫大规模入侵土耳其:场面惊悚 令人不适
- 广东一特斯拉连撞多车冲毁店门现场视频:网友看完称刹车灯亮了 油门当刹车
- 世界热文:75岁老人中风 好友发现运动步数为0报医:最终脱离危险
- 全球首个财务自由大学诞生 美国普林斯顿大学2600亿财富养活自己
- 世界今头条!“帮忙资金”助基金保壳
- 当前聚焦:工作人员帮游客捡手机被4只幼虎围观 网友:幸亏是“幼儿园”
- 全球快看点丨董明珠:中国制造业要想成为世界级 必须在创新上下功夫
- 摄影师把iPhone塞水下拍美景 咕噜咕噜一阵冒泡 Siri:这把憋气局
- 全球速读:吴青峰发文请大家别听苏打绿的歌:母带仍被非法利用 还听是助纣为虐
- 学弈这篇文言文是什么意思
- 仅1/3美国人能轻松支付400美元应急费用:信用卡违约率激增
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球今亮点!Java Struts2系列的XSS漏洞(S2-002)
0x01 前言
复现一下 S2-002 的洞
0x02 S2-002
漏洞简介
Struts2-002是一个XSS漏洞,该漏洞发生在s:url和s:a标签中,当标签的属性includeParams=all时,即可触发该漏洞。
漏洞影响版本
Struts 2.0.0 - Struts 2.1.8.1
(相关资料图)
0x03 环境搭建
如果不想手动搭建的话,环境我已经配好了https://github.com/Drun1baby/JavaSecurityLearning/tree/main/JavaSecurity/Struts2/S2-002AndS2-006
因为 s2-002 的洞是一个 XSS,与处理的 Action 没有任何关系,所以这里我们只需要配置.jsp文件,以及.xml文件
resources 文件夹下
struts.xml
welcome.jsp index.jsp webapp 文件夹下
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> S2-002 S2-002 Demo
click welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> S2-002 Hello
接着在 WEB-INF 下,web.xml
S2-002 Example struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* index.jsp 项目结构如图,至此环境搭建完毕
0x04 漏洞复现与分析
http://localhost:8080/?%22%3E%3Cscript%3Ealert(1)%3C/script%3E%3C%22漏洞分析
之前自己也没有分析过 XSS 相关的漏洞,在最后我会做一个小结来思考一下如何自己挖掘出这个漏洞
我们先下一个断点在org.apache.struts2.views.jsp.ComponentTagSupport#doStartTag()方法处,开始调试
当在 JSP 文件中遇到Struts2标签doStartTag()方法 ,并将标签中的属性设置到对应标签对象相应属性中。最后,在遇到/>结束标签的时候调用doEndTag()方法。
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
① 网安学习成长路径思维导图 ② 60+网安经典常用工具包 ③ 100+SRC漏洞分析报告 ④ 150+网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南+题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集(含答案) ⑧ APP客户端安全检测指南(安卓+IOS)
进入到了index.jsp
跟进this.component.start()
在index.jsp中includeParams=all,往下看代码知道 88 行,跟进mergeRequestParameters()方法
在includeParams=all的情况下会调用mergeRequestParameters()将 Tomcat 处取来的参数,这里取到了我们输入的 payload,并且保存在this.parameters中
mergeRequestParameters()方法运行完毕,往下是includeGetParameters()方法,也跟进去看一下;发现也是调用了mergeRequestParameters(),同样是保存在了this.parameters中,不过这一次保存的是经过 url 编码的数据
继续往下,程序还调用了includeExtraParameters()方法,跟进;这里的意思是如果有额外的参数,会被保存进这里,然后再保存到this.paramters
其实到这里漏洞出发点就来了,第一次调用mergeRequestParameters()方法的时候那一段参数是未经过 URL 编码的,从而产生了 XSS
在执行完毕doStartTag()方法之后,会去到doEndTag()方法,我们跟进this.component.end(),this.component是 URL 类,所以也就是调用了URL.end()
往下走,第 146 行,判断目前调度器(Dispatcher)的实例是否支持这一 Struts2 组件的行为,并且判断这一个请求是否需要 Struts2 组件调用某 Action 来处理;如果不需要调用 Action 处理,则直接进入buildUrl()的代码逻辑,如果需要 Action 来处理,会先去选择/调用 Action,再进行后续操作。
其实也就是 Struts2 运行的基本逻辑
此处因为我们定义了action=login,所以进入到了 else 的代码逻辑,跟进this.determineActionURL()方法
determineActionURL()方法先定位到了对应的action,再进行buildUrl()的操作,跟进buildUrl()
再跟进
此时的 params 即将会被拿去拼接,造成触发 XSS 漏洞
具体拼接是在 115 行的buildParametersString()方法,跟进再跟进
至此,漏洞分析结束
漏洞修复
修改pom.xml,将 Struts2 版本提升至 2.0.11(这是根据公告的,其实并没有真正解决漏洞)
经过对 2.0.11.1 的代码阅读,在UrlHelper类buildUrl()方法里,第 136 行增加了如下修复代码:
// link是最终的生成的url for(result = link.toString(); result.indexOf("<script>") > 0; result = result.replaceAll("<script>", "script")) { }太鸡肋,基本算不上修复。。。
0x05 小结
因为是 XSS 漏洞,成因基本都是未进行 URL 编码或某种转码,所以我们可以去看处理参数的过程进行漏洞挖掘。
S2-002 还是比较简单的一个漏洞。
更多靶场实验练习、网安学习资料,请点击这里>>
-
速递!koreanDollLikeness_v10模型下载及使用
前几天给大家提供了koreanDollLikeness_v15模型的下载,最近小卷终于找到koreanDollLikeness_v10模型啊...
来源: -
-
环球今亮点!Java Struts2系列的XSS漏洞(S2-002)
漏洞简介:Struts2-002是一个XSS漏洞,该漏洞发生在s:url和s:a标签中,当标签的属性includeParams=all时...
来源: -
速递!koreanDollLikeness_v10模型下载及使用
# 前端周刊:2023-2 期
环球今亮点!Java Struts2系列的XSS漏洞(S2-002)
天天视点!被雷电瞄准时身体会有预兆:如果在乌云下毛发突然竖起 赶紧躲避
世界热议:全球一半人口2035年可能超重:总量超过40亿
全球资讯:石家庄买一根火腿肠就能免费坐地铁 官方回应:鼓励绿色出行
一本院校招聘会现多家酒店招洗碗工引热议 最低工资2千多:官方回应
焦点报道:又一起!美国一小型飞机坠毁后起火 已致1死2伤
聊一聊如何用SonarQube管理.NET代码质量
语义分割评价指标(Dice coefficient, IoU)
(数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述
天天通讯!Spring Boot 实现装饰器模式,真香!
观天下!密密麻麻!地震后松毛虫大规模入侵土耳其:场面惊悚 令人不适
广东一特斯拉连撞多车冲毁店门现场视频:网友看完称刹车灯亮了 油门当刹车
世界热文:75岁老人中风 好友发现运动步数为0报医:最终脱离危险
全球首个财务自由大学诞生 美国普林斯顿大学2600亿财富养活自己
大神教你在 Linux 中查看你的时区
世界今头条!“帮忙资金”助基金保壳
当前聚焦:工作人员帮游客捡手机被4只幼虎围观 网友:幸亏是“幼儿园”
全球快看点丨董明珠:中国制造业要想成为世界级 必须在创新上下功夫
摄影师把iPhone塞水下拍美景 咕噜咕噜一阵冒泡 Siri:这把憋气局
全球速读:吴青峰发文请大家别听苏打绿的歌:母带仍被非法利用 还听是助纣为虐
学弈这篇文言文是什么意思
环球快报:读Java性能权威指南(第2版)笔记08_即时编译器中
仅1/3美国人能轻松支付400美元应急费用:信用卡违约率激增
可视化调试某个js对象的属性UI插件 class HTUI
每日速递:一进群就水群?试试这个水群拦截工具
世界快讯:裁员70% 关停两个办公点:自动驾驶卡车公司Embark倒闭边缘
【世界新视野】想买法拍车捡漏?你可能得先准备10本驾照
全球速读:985高校女大学生裸辞大公司:每天活得像老鼠
【当前热闻】瞬狙和闪狙哪个更快_瞬狙
精选!台球杆什么皮头最好
世界快消息!打开MASA Blazor的正确姿势4.1:母版页布局
全球热推荐:Study for Go ! Chapter three - Function
day02-项目实现01
全球速读:【奶奶看了都会】ChatGPT3.5接入企业微信,可连续对话
将外部参数传入awk命令的方法汇总
【热闻】Asp.net core mapcontrollers 背后干了些啥
思科交换机的密码策略与端口安全设置
当前关注:Mac OS 打开pycharm立即闪退,报错initial heap size set to a larger value than the max
“一日三次”的药 到底该怎么吃?你可能一直都错了
比亚迪百万豪车!实拍仰望U8原地掉头:这圈儿真圆
环球关注:微软Edge拯救低清老视频 秒变高清!三代N卡、A卡都能用
快看:棉锦防火布
环球即时看!EF7DbContext池
天天时讯:DotNet 5.0 部署 Docker 注意
男子高烧近41度 体温计贴脸狂飙:近期谨防甲流 病死率很高
老人捡到手机不会接听错过四十多通电话 最终成功归还
反诈老陈自曝2022年收入133万:缴税近40万 捐赠84万+
国家二级保护动物有哪些
任意Exe转ShellCode?
快报:一手卖掉《古墓丽影》:SE宣布总裁松田洋介辞职
每日速看!纪念上映20周年:《指环王:王者无敌》将重映4小时加长版
理想L7本月开启交付 50万以内第二排舒适度最好的SUV
全球信息:AMD显卡驱动罕见Bug:Windows都给搞崩了
精彩看点:老牛嚼电线被击倒 网友:应该是母牛 因为公牛不漏电
环球看点!奥斯卡掌掴事件后续
【读书】《成就上瘾:把成事当成一种习惯》
json转golang结构
婚变?前亚视高层与澳门名媛太太近一年未见
焦点播报:员工增长近万人!AMD去年研发支出同比大幅上涨
小米有品219元:平仄普洱生熟茶饼礼盒99元大促
每日热闻!胡令能是哪里人_胡令能简介
手工耿发明新刑具“忏悔辅助器”:让你的脑袋自动撞墙
世界观点:登陆Steam国区:暗黑Like游戏《火炬之光:无限》PC版或将手游同步推出
女子地铁上手机外放收“罚单” 南京地铁:车厢内禁喧哗
第六章 应用层
python文件的高级应用
1. 简单版
群晖NAS大促:四盘位DS420+历史低价
每日速看!Twitter被曝12月营收骤降40%:广告商抽身成主要原因
【全球播资讯】node.js学习技巧
速递!撑伞也是雨中人什么意思_撑伞也是雨中人这句话什么意思
Intel或将开发“视频DLSS”同款超分辨率技术:最低仅需10代酷睿
天天信息:MASA Framework源码解读-01 MASAFacotry工厂设计(一个接口多个实现的最佳姿势)
环球通讯!(数据库系统概论|王珊)第九章关系查询与关系优化:习题
天天看点:侠盗猎车手圣安地列斯攻略
每日热议!稳了!索尼PS4/PS5之父操刀新一代PS6主机:发布时间及首发大作曝光
当前消息!三星Galaxy S23 Ultra又出问题:S Pen被指出现随机断连
全球短讯!Codeforces 1785 E Infinite Game 题解 (图论,自动机,dp)
数字信号处理流程
播报:P8大佬的 62条SQL优化策略,太牛X了!! 收藏起来有大用!!!
学会了Java 8 Lambda表达式,简单而实用
天天最资讯丨修复 Ubuntu 中的 “Key is stored in legacy trusted.gpg keyring” 问题
数码相机卖不动:2023年1月销量大跌36%!单反惨烈
世界今日讯!长安深蓝全新中型SUV S7亮相:仪表盘“消失”
传大超转职普莱斯上尉
环球快播:美国一架飞机在飞行中突然强烈颠簸 竟致1人死亡
一口气58首歌 主办方因为周杰伦多唱被罚钱!周董回应:哥无所谓
环球热消息:抖店个体和企业开店费用_开店费用
世界关注:成都皮肤科医院排名第一_成都皮肤科医院qq
每日看点!硬挺不厚 穿着不热!放克纯棉T恤大促:20.1元包邮
售价13.99万元起 本田型格HATCHBACK正式上市
辣眼睛?网红“安福路小公主”首度回应质疑:给自己外貌打90分 对恶评不在意
【环球播资讯】(数据库系统概论|王珊)第九章关系查询处理和关系优化-第四节:查询优化之物理优化
直播电商名词解释
超百Gbps容量!中星26号卫星成功定点:我国自研卫星平台
全球微动态丨防缩水可机洗 GXG男士针织衫:89元手慢无
Java实战(第二版)读后总结与感想
201球!姆巴佩加冕队史射手王 24岁就成第一人 2.2亿投皇马?