热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享POC漏洞批量验证程序Python脚本编写

编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程

编写目的

批量验证poc,python代码练习。

需求分析

  • 1、poc尽可能简单。
  • 2、多线程。
  • 3、联动fofa获取目标。
  • 4、随机请求头.

实现过程

脚本分为三个模块,获取poc及目标、多线程批量请求验证、输出结果。其中批量请求验证包括构造多线程,修改请求参数,发送请求三个部分。

main函数

在main函数中,主要有三个部分获取poc及目标,多线程(将目标填充到队列,创建多线程并启动)、输出结果。
具体实现如下:

获取目标

关于目标来源,设计单个目标、从文件中读取多个目标以及根据fofa语法从fofa_api中获取目标三种方式。

定义函数gettarget,函数分为两个部分

第一部分为根据 -f fofa语法 获取目标,默认数目为30条,

第二部分为根据 -u url / -i file / -f num(数目,默认为10)获取要请求验证的目标,两部分以是否传参poc参数区别,最后返回一个targetlist列表。

具体实现如下:

批量请求验证

定义thread函数,封装多线程请求相关代码,需传入获取到的目标参数targetlist。
具体实现如下:

加载poc

请求验证必须使用 -p pocname参数指定要使用的poc,所有poc在poc.json文件中存储。

具体实现如下

多线程类

定义reqthread线程类,传入队列以及poc两个参数,封装req请求方法。
具体实现如下:

其中在req中的请求方法内,存在三个修改请求的方法。

urlparse

对获取到的目标进行文本处理。

getproxy

指定请求代理。

randomheaders

添加随机user-agent、referer、xff等请求头参数值。

输出结果

定义全局变量list,储存要输出的目标,定义输出方法puttarget。
具体实现如下:

其他

全局变量

命令行读取参数

poc详情显示

ctrl+c结束线程

poc.json文件

poc本质为一次http请求,本着简单的原则,仅设计名称、联动fofa的语法、请求头、请求内容、以及验证漏洞存在回显的内容5个字段。

运行结果

fofa获取目标

POC漏洞批量验证程序Python脚本编写

poc验证

POC漏洞批量验证程序Python脚本编写

POC漏洞批量验证程序Python脚本编写

总结

代码实现基本功能,已暂时符合自己使用需求,此次实践已完成编写目的,但一些容错机制以及细小功能点还需完善,如输入为空程序运行结果,以及代理模块功能待实现。

通过此次编程,在熟悉python编程的同时也深感代码功底的薄弱。

不过最后还是学习到不少知识,比如多线程、读写文件、数据类型操作、命令行参数读取、编程模块化思想等。
  

之后可以多尝试使用python编写小demo工具,避免对编程思维生疏。

完整代码

以上就是poc漏洞批量验证程序python脚本编写的详细内容,更多关于python脚本编写poc批量漏洞验证的资料请关注<编程笔记>其它相关文章!

需要了解更多python教程分享POC漏洞批量验证程序Python脚本编写,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
author-avatar
卢健波_785
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有