前段时间自己写了一个批量代码,就几十行,于是想这多学学代码,从脚本小子变为脚本老子。python会一丢丢,就想多学一下,虽然现在go也很火。。。
找到一个大哥写的python批量代码,看了一下,学习学习。
https://github.com/tr0uble-mAker/POC-bomber这是项目地址。
我的电脑上版本都是很早之前的,现在已经更新了好几个版本和挺多poc的。
pocbomber是主文件,也是入口,主要是argparse模块写的,然后调用本地自己写的一些py文件,inc是一些配置文件和接口调用参数传递都在这里进行,pocs是poc文件,进行漏洞扫描调用。(前几天写批量的时候就在想加个开关之类的,就不用在pycharm中每次修改了。就学到argparse模块)
这个文件不难,就是模块的基本操作和调用函数,参数传递给console.py文件。
线程池的话如果用户输入了那么就会通过console文件重新赋值给config文件里面的max_thread变量。
这是console文件,我菜,所以给每行都添加了注释。通过主文件也就是pocbomber把用户的开关参数传递给console,然后通过循环,对每个参数都进行遍历,如果用户使用了就会进行相应动作。大部分的参数都可以为空,但是url参数和file参数不能为空,因为为空的话poc都不知道该那谁测试,所以最后会对url和file参数进行验证,如果没有的话就会输出工具使用方法。他最后会把url放在列表里,然后传参给run函数。
DNSlog文件我瞅了一下,就是获取dnslog地址然后和相应的,他会先获取dnslog地址,然后执行完poc之后会停止6秒,然后获取dnslog的响应。
init文件里主要是获取poc路径的,如-p这个参数,如果调用了-p参数,他就会把刚开始consolo文件定义的全部poc列表覆盖了,重新赋值,这个列表里就只有你输入的poc文件路径。他刚开始就会调用所有poc路径。
output文件就是负责输出日志、poc、提示语等。
主要是一些输出日志。
run函数和thread函数是用来进行漏洞测试的文件,console会给run三个参数,分别为:url列表、poc路径、输出文件列表。
console调用run里面的verify函数。
在verify函数里他会通过循环,给多线程文件thread,然后进行poc调用扫描。
这是他的多线程文件,多线程大学用过一次,不会了,所以没注释,等周末会重新学习一下,方便以后自己写软件的时候使用。下面是我画的思维导图,摸鱼结束,火速下班。
原文始发于微信公众号(一个小白帽的成长之路):python学习
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论