首页
社区
课程
招聘
[原创][分享]python信息泄露扫描脚本
发表于: 2017-10-4 21:14 8922

[原创][分享]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 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 3935
活跃值: (187)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主  不懂为什么要用flask??  这个模块,你是要web显示??如果是并发  推荐  tornado  这个~~

或者py3 自带的  asyncio 标准库~~
2017-10-5 12:51
0
雪    币: 203
活跃值: (53)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4



nqxcwl

楼主  不懂为什么要用flask??  这个模块,你是要web显示??如果是并发  推荐  tornado  ...
核心代码功能是一部分,只是提供一个API供flask调用方便显示。
2017-10-5 13:06
0
雪    币:
活跃值: (172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
还在学习Python,目前为止还没有看懂
2017-10-8 18:51
0
雪    币: 426
活跃值: (376)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
关注看看
2017-10-12 08:22
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这是什么
2017-12-8 13:10
0
游客
登录 | 注册 方可回帖
返回
//