未授权访问问题一直存在于互联网,或多或少的管理员不注重服务器的安全,以至于疏忽造成了服务器服务的未授权访问。

有一天,忽然想到,整个互联网的未授权漏洞是不是还有很多,是不是可以给他们提交了,说干就干。针对于三个来源:url获取、批量、未授权脚本

1、url获取:

可以通过搜索引擎收集某个特征的url,比如fofa、shodan、ZoomEye等。这里我用的是fofa,比如查找有mongodb的服务器:country=CN && port=27017 && protocol==mongodb;查找有elasticsearch的服务器:port="9200"&& country=CN && protocol==elastic;查找有redis的服务器:app="redis" && country=CN

2、批量:

这里用到的是python的多线程,下面是一个多线程模板:

import threadingimport timefrom queue import Queueevent = threading.Event()event.set()q = Queue(0)s = time.strftime("%Y‐%m‐%d %H:%M:%S", time.localtime())exitFlag = 0class maint(): def init (self,url,num): self.url = url self.num = num def fff(self): url = self.url # todo print("1") #此处可对探测到有未授权的url进行处理class myThread (threading.Thread): def init (self, q, num): threading.Thread. init (self) self.q = q self.num = num print(num)def run(self): while event.is_set(): if self.q.empty(): break else: sql_spot = maint(self.q.get(),self.num) sql_spot.fff()def scan_thread(q): thread_num = 10 threads = [] for num in range(1,thread_num+1): t = myThread(q,num) threads.append(t) t.start() for t in threads: print(t) t.join()def open_urls(): url_path = r'a.txt' #a.txt为存放url的文本文档 f = open(url_path, 'r',encoding='utf‐8') for each_line in f: q.put(each_line) return qif   name   == ' main ': open_urls() scan_thread(q)

open_urls()函数:

将收集到的url加入队列q中(可以因脚本而异,比如如果是elasticsearch(开放的是9200端口)的话,可以在入队列之前,加上:9200,代码:

each_line = each_line + ":9200")

scan_thread()函数:

传入一个队列q,创线程(1-10),myThread()类实例化得到对象t,将t加入线程队列中,开启线程;join进行线程之间的同步,即主线程任务结束之后,进入阻塞状态,一直等待其他的子线程执行结束之后,主线再终止。

myThread()类的run()函数:

判断event的状态码,如果为false,则中断;如果为true,继续进行:判断队列是否为空,如果为空,中断,如果不为空,则创造maint()类的对象sql_spot,执行sql_spot对象的fff()方法

maint()类的fff()函数:

探测未授权漏洞的主体

3、 未 授 权 脚 本 :

(1)mongodb未授权

查阅资料可以知道,python与mongodb所交互的库为pymongo,所以调用pymongo的连接代码:

client = pymongo.MongoClient("mongodb://" + url, 27017)mydb = client['local']sevenday = mydb['startup_log']doc = sevenday.find()for d in doc:if d:with open("b.txt", "a+") as f: #b为所要保存的txtf.writelines(url + '\n')break else: pass

这里连接mongodb,虽然引用local库里的startup_log表(相当于mysql里的mysql库的user表,只是说存在的形式,不是说内容,可以这么理解,只要startup_log表里能取出来内容,即代码中的(ifd:),那么就说明存在mongodb未授权)

(2)elasticsearch未授权

查阅资料可以知道,如果网页端访问/_cat存在/_cat/master就存在elasticsearch未授权漏洞。这里我进行探测/_plugin/head/(elasticsearch数据库的web管理界面,对于数据的操作很方便),代码如下:

url = url + "/_plugin/head/"try:a = requests.get( url , timeout=3)if a.status_code == 200:with open("elastic.txt","a+") as f:f.writelines(url+'\n')except :pass

只要探测的页面回显是200的,就可以算是未授权漏洞。

(3)redis未授权

查阅资料可以知道,redis与python进行交互的是redis库,调用连接代码:

try:r = redis.Redis(host=url, port=6379, db=0)print(self.url)rs = r.info()if rs:time.sleep(0.1)with open("aaa.txt", "a+") as f:f.write(self.url.replace("\n", "\t") + '\n')else:passexcept:pass

连接上redis以后,读取info信息,如果存在info信息,则说明存在redis未授权访问漏洞

以下是刷出来的成果:

由于我只挑选了几个进行提交,而且还有一些url并没有获取,还有很大一部分的服务器存在漏洞

ps:

再贴出两个脚本

①grafana(弱口令)3000端口如果开启了grafana(格兰法那)的话,可以进行一次批量探测弱口令:

url = self.urlurl = url.strip()url = url + "/login"data_json = {"user": "admin", "email": "", "password": "admin"}try:b1 = requests.post(url, data_json)with open("success.txt", "a+") as f:if b1.status_code == 200:f.writelines(url+'\n')except :pass

发送一个json数据包给login页面,如果返回200,即为登录成功

②批量探测ip转换域名

可以将探测到的ip,批量转换成域名,对于提交漏洞很有帮助,不需要一个一个的去找域名

res = requests.get("http://site.ip138.com/"+url)res.encoding = 'utf‐8'if "暂无结果" in res.text: passelse: selector = etree.HTML(res.text) target = selector.xpath('//*[@id="list"]/li[3]/a') # target = selector.xpath('//*[@id="list"]/li/a') #查多个url  for ta in target:  a = ta.text  with open("url1"+ s.replace('‐', '') +".txt","a+") as p:  p.writelines(a+ "\n" + "http://"+self.url.strip() +':9200/_plugin/hea d/'+'\n\n')

这里调用的是ip138的查找,读取url,发送请求给ip138,然后根据网页返回的内容进行提取域名

● 云众可信征稿进行时

● 原创干货 | 记一次拟真环境的模拟渗透测试

● 原创干货 | 从手工去除花指令到Get Key

● 原创干货 | 浅谈被动探测思路

·END·

云众可信

原创·干货·一起玩

微信号:yunzhongkexin好看的人才能点

log explorer for sql 不存在或访问被拒绝_原创干货 | 未授权访问漏洞批量化相关推荐

  1. mysql root 访问被拒绝_用户'root'@'localhost'的访问被拒绝-Spring Boot和MySQL连接

    我正在尝试从春季启动连接MySQL数据库,但出现以下错误: java.sql.SQLException: Access denied for user 'root'@'localhost' (usin ...

  2. 宝塔执行sh文件_宝塔面板未授权访问

    今日(8月23日)宝塔面板官方紧急更新了一处安全问题. 宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功 ...

  3. 二十八种未授权访问漏洞合集(暂时最全)

    目录 0x01 未授权漏洞预览 0x02 Active MQ 未授权访问 0x03 Atlassian Crowd 未授权访问 0x04 CouchDB 未授权访问 0x05 Docker 未授权访问 ...

  4. Alibaba Druid未授权访问漏洞记录(敏感目录,端口:不确定)

    Druid简介 1.Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池. 2.Druid提供的监控功能,监控SQL的执行时间.监控Web URI的请求.Session监控. Druid可能 ...

  5. 常用的30+种未授权访问漏洞汇总

    未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...

  6. Redis未授权访问写Webshell和公私钥认证获取root权限

    0x01 什么是Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Red ...

  7. Redis 4.x/5.x未授权访问漏洞

    Redis是什么? Redis是数据库,一个高性能的key-value存储系统,是使用ANSI C语言编写的. Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0:6379,如 ...

  8. Redis 未授权访问缺陷可轻易导致系统被黑

    Redis 未授权访问缺陷可轻易导致系统被黑 漏洞概要 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在 ...

  9. 常见未授权访问漏洞详解

    参考文章1:二十八种未授权访问漏洞合集(CSDN) 参考文章2:28种未授权访问漏洞(知乎) 参考文章3:未授权访问漏洞总结(freebuf) 参考文章4:常见未授权访问漏洞总结(先知社区) 文章目录 ...

  10. Redis未授权访问漏洞详细版

    Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...

最新文章

  1. 错误:pytube.exceptions.RegexMatchError
  2. 汉高澳大利亚sinox接口捆绑经典winxp,全面支持unicode跨语言处理
  3. JAVA——附加作业2——情人节送花
  4. 中国移动将于11月1日公布5G套餐价格,北京地区已建5000个5G基站
  5. 操作mysql_操作mysql
  6. “拼图”化解智慧城市“碎片化”难题
  7. Android BackgroundViewPager:类似桌面背景壁纸随手指滑动
  8. 电商购物网站 - 需求与设计
  9. Dynamics CRM2013 6.1.1.1143版本插件注册器的一个bug
  10. C语言求1000后面有多少个0,c语言题目计算1000!的末尾有多少个零
  11. 超链接小点html,html超链接取消鼠标点指显示小手
  12. html怎么加圆圈,圆圈1怎么打 word怎么打一个圈里面加数字1
  13. JSON 对比工具,优秀的JSON对比工具,对比json数据
  14. 软件测试背景目的要点概述
  15. 快手信息流投放平台:快手电商宣告成年
  16. Python入门习题大全——T恤
  17. Android连接夜神模拟器详细步骤
  18. java tps 优化_高tps下,java性能调优
  19. DC/DC电源输入输出滤波电容摆放位置
  20. 180119 杂项-生物特征识别原理和绕过

热门文章

  1. 2. sales quote merge before
  2. 25. Location hash 属性
  3. Hadoop报错 Failed to locate the winutils binary in the hadoop
  4. oracle CHARINDEX 函数用法
  5. dubbo入门之微服务客户端服务端配置
  6. 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
  7. NE555脉冲模块电路
  8. Flask--模板渲染和参数传递
  9. 终结者:终止线程循环的方式
  10. Jquery—Jquery中的(function($){...})(jQuery)