最新要闻
- 天天视点!被雷电瞄准时身体会有预兆:如果在乌云下毛发突然竖起 赶紧躲避
- 世界热议:全球一半人口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亿投皇马?