当新的Poc出来,一般都只是单个验证,想在最快的时间刷最多的洞,怎么办?

当渗透目标是海量时候,你手上的工具只是单个验证的,怎么办?

这时候当然就需要批量了,求人不如求己,简单的批量其实很简单,有如下3种方法,大家可以试试。

以下以lijijie的subDomainsBrute为例

1.再写一个简单批量调用脚本

python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程;

import os

with open("urls.txt", 'r') as urls:

    for url in urls:

        url = url.strip('\n')

        str='python subDomainsBrute.py --full '+url

        print str

        p=os.system(str)

2.直接改写原脚本的函数

主要在主函数中添加如下的代码,简单判处参数中是否有.txt后缀,有的话,把目标url读取进来,接着打印下总的参数、目标,最后就是依次读取URL进行扫描了。

    if '.txt' in args[0]:

        with open(args[0], 'r') as f:

            target_urls = f.readlines()

    else:

        target_urls = args[0].split()

    print "options:\n"+str(options)

    print "target:\n"+args[0]

    print "target_urls:\n"+str(target_urls)

    for target_url in target_urls:

        target_url = target_url.rstrip('\n')

        print target_url

        ...

3.使用插件化并发框架

例如使用poc-t,只需要把代码改为函数化即可

可以参考https://github.com/Xyntax/POC-T/wiki/03-编写脚本

在代码中添加函数 poc()

添加逻辑使验证成功(漏洞存在)时return True,验证失败时return False

(程序运行时,每个子线程调用该文件的poc()方法,并将队列中的取出的字符串传入该方法

def poc(input_str):

    return True or false
    ```