-
-
[原创][分享]python信息泄露扫描脚本
-
发表于:
2017-10-4 21:14
8922
-
最开始写扫描器的时候写的一个功能,所以做了接口的形式,以供后期整合到扫描器项目中,但是后来在找漏洞或者渗透过程中,前期对目标站点进行子域名收集,在根据URL或者IP会探测出一些意想不到的路径和端口。所以重新分离了出来单独使用。只要把目标的域名收集全就可以自动化刷src。
根据规则来扫描一些路径,比如Tomcat,Jboss,weblogic,svn,Jenkins,备份文件等等,跟一般的后台目录扫描不一样。所以后面如果想要指定扫描的类型可以自由添加。
如果rule规则有需要增加的,麻烦再帖子后面评论+规则,代码需要修改完善的请私我。
dirFinder.py 是扫描脚本
rule.txt 是规则,可以自由添加。打开的时候用editplus、notepad++等,如果用自带记事本会没有换行。
url.txt 是需要扫描的URL地址
扫描结果会自动生成到vulurl.txt文件中
code:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#from flask import Flask, request, json, Response, jsonify
import json
import threading
import requests
import urllib2
import sys
import threading
from time import ctime,sleep
import threadpool
#app = Flask(__name__)
#@app.route('/', methods = ['GET','POST'])
def main():
#if request.method == 'GET':
#geturl = request.args.get('geturl')
f = open("url.txt")
line = f.readlines()
global g_list
g_list = []
urllist = []
list1 = []
for u in line:
u = u.rstrip()
#dir = ['/admin','/t/344205']
dir = open("rule.txt")
dirline = dir.readlines()
for d in dirline:
d = d.rstrip()
scheme = ['http://','https://']
for s in scheme:
#print type(s)
#print type(geturl)
#print type(d)
url = s + u + d
list1.append(url)
thread_requestor(list1)
#return json.dumps(g_list)
f = open('vulurl.txt','w')
f.write(json.dumps(g_list))
f.close()
def res_printer(res1,res2):
if res2:
g_list.append(res2)
else:
pass
def thread_requestor(urllist):
pool = threadpool.ThreadPool(200)
reqs = threadpool.makeRequests(getScan,urllist,res_printer)
[pool.putRequest(req) for req in reqs]
pool.wait()
def getScan(url):
try:
requests.packages.urllib3.disable_warnings()
status = requests.get(url, allow_redirects=False, timeout=3,verify=False).status_code
print "scanning " + url
if status == 200:
return url
else:
pass
except:
pass
if __name__ == "__main__":
main()
扫描效果:
[课程]Linux pwn 探索篇!