5、安全开发-Python-红队项目漏扫工具API推送微信任务自动添加并启动

 用途:个人学习笔记,有所借鉴,欢迎指正!

目标:

利用Python脚本调用漏洞扫描工具API批量扫描目标url,发现漏洞后有所通知,解放双手。

一、漏洞扫描-API调用-Xray

参考:快速开始 - xray Documentation
应用案例:可通过自动化扫描后将实时结果进行微信推送,也可以应用在其他安全工具上。

使用示例:xray webscan --url http://x.x.x.x --webhook-output http://127.0.0.1:5000/webhook

基本步骤:
1、命令漏扫触发本地URL 
2、Flask启动进行监听处理
3、借助Server酱API推送微信

from flask import Flask, request
import requestsapp = Flask(__name__)@app.route('/webhook', methods=['POST'])
def xray_webhook():url = 'https://sctapi.ftqq.com/SCT75428T2Fd9hkLOmLXk53uWeFtl17TD.send?title=Xray find vuln!!!'try:#接受传递过来的数据转换json格式vuln=request.jsoncontent = """## xray 发现了新漏洞url: {url}插件: {plugin}漏洞类型: {vuln_class}请及时查看和处理""".format(url=vuln['data']['target']['url'], plugin=vuln['data']['plugin'],vuln_class=vuln['type'])print(content)data={'desp':content}print(data)requests.post(url,data=data)return 'ok'except Exception as e:passif __name__ == '__main__':app.run()

二、Python-红队项目-Awvs调用自动添加

漏扫API调用-AWVS

Awvs漏洞扫描工具:https://www.ddosi.org/awvs-5/

API使用参考:AWVS13批量脚本_%targets:website,=%-CSDN博客
应用案例:可通过脚本调用AWVS自动添加扫描也可以应用在其他安全工具上。

基本步骤:

1、启动工具&开启API-KEY
2、创建新任务并记录任务ID
3、启动新任务并记录返回ID

三、Python-红队项目-SQLMAP API调用脚本自动添加扫描

漏扫API调用-SQLMAP
参考:https:/www.freebuf.com/articles/web/204875.html
应用案例:前期通过信息收集拿到大量的URL地址,这个时候可以配合SqlmapAPl接口进
行批量的注入检测。

开发当前项目过程:(利用sqlmapAPI接口实现批量URL注入安全检测)

from flask import Flask, request
import requests,time,json#启用sqlmap-API服务          python sqlmapapi.py -s
#Sqlmap API接口使用:
# 1.创建新任务记录任务ID       @get("/task/new")
# 2.设置任务ID扫描信息         @post("/option/<taskid>/set")
# 3.开始扫描对应ID任务         @post("/scan/<taskid>/start")
# 4.读取扫描状态判断结果       @get("/scan/<taskid>/status")
# 5.如果结束删除ID并获取结果    @get("/task/<taskid>/delete")
# 6.扫描结果查看               @get("/scan/<taskid>/data")def new_id():headers = {'Content-Type': 'application/json'}url='http://127.0.0.1:8775'+'/task/new'resp=requests.get(url,headers=headers).json()taskid=resp['taskid']if resp['success'] is True:print('->1、创建任务ID成功,ID:' + taskid)return taskiddef set_id(id,scanurl):headers = {'Content-Type': 'application/json'}data={'url':scanurl}url = 'http://127.0.0.1:8775/option/%s/set' % idresp = requests.post(url, data=json.dumps(data),headers=headers).json()if resp['success'] is True:print('->2、设置任务ID成功,ID:' + taskid)print('->2、设置任务URL成功,URL:' + scanurl)return taskiddef scan_id(id,scanurl):headers = {'Content-Type': 'application/json'}data = {'url': scanurl}url = 'http://127.0.0.1:8775/scan/%s/start' % idresp = requests.post(url, data=json.dumps(data), headers=headers).json()if resp['success'] is True:print('->3、启动扫描任务ID成功,ID:%s'%id)print('->3、启动任务URL成功,URL:%s'%scanurl)def status_id(id):url = 'http://127.0.0.1:8775/scan/%s/status'%idprint('->4、扫描任务进行中,请等待结束,ID:%s' %id)while 1:resp = requests.get(url).textif 'running' in resp:#print(resp)continueelse:print('->4、扫描任务ID已完成,ID:%s' %id)breakdef data_id(id,scanurl):url = 'http://127.0.0.1:8775/scan/%s/data' % idresp = requests.get(url)#print(resp.json()['data'][0]['status'])if resp.json()['data'][0]['status'] == 1:print('>>>>>>>>>>>>>>>>>>>>>>>>>')print('存在注入:'+'\n'+scanurl)print('>>>>>>>>>>>>>>>>>>>>>>>>>')wx = 'https://sctapi.ftqq.com/SCT75428T2Fd9hkLOmLXk53uWeFtl17TD.send?title=SQLMAP find vuln!!!'sql_title=resp.json()['data'][1]['value'][0]['data']['5']['title']sql_payload=resp.json()['data'][1]['value'][0]['data']['5']['payload']sql_dbms = resp.json()['data'][1]['value'][0]['dbms'][0]try:content = """## sqlmap 发现了新漏洞url: {url}漏洞标题: {title}漏洞Payload: {Payload}漏洞数据库类型:{dbms}请及时查看和处理""".format(url=scanurl, title=sql_title, Payload=sql_payload,dbms=sql_dbms)#print(content)data = {'desp': content}print(data)requests.post(wx, data=data)return 'ok'except Exception as e:pass# with open('result.txt', 'a+') as f:#     f.write(resp.text)#     f.write('\n' + '===========python sqlmapapi by xiaodisec=============' + '\n')#     f.write('-?----------------------------------------------------' + '\n')#     f.close()print('->5、注入任务ID已完成,请查看结果:result.txt')def delete_id(id):url = 'http://127.0.0.1:8775/task/%s/delete' % idresp = requests.get(url).json()if resp['success'] is True:print('->6、删除任务ID:%s成功' % id)time.sleep(3)if __name__ == '__main__':for url in open('url.txt'):taskid = new_id()set_id(taskid,url.replace('\n',''))scan_id(taskid,url.replace('\n',''))status_id(taskid)data_id(taskid,url.replace('\n',''))delete_id(taskid)print('---------------------------------')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

82个demo代码|35000字带你认识和学会所有 C++11 algorithm头文件中所有算法函数|algorithm头文件函数用法大全

C <algorithm> 头文件的学习 文章目录 C <algorithm> 头文件的学习参考网站非修改序列操作all_ofany_ofnone_offor_eachfindfind_iffind_if_notfind_endfind_first_ofadjacent_findcountcount_ifmismatchequalis_permutationsearchsearch_n 修改序列操作copycopy_n…

Matplotlib交互

python中matplotlib实现随鼠标滑动自动标注代码 python鼠标画线条 python鼠标拖动曲线 惊了&#xff01;matplotlib也能交互式展示数据&#xff1f; 如何在保持x与y比例不变的情况下缩放pyplot图形&#xff1f; How to animate a scatter plot How can I pass parameters …

【JS逆向八】逆向某企查网站的headers参数,并模拟生成 仅供学习

逆向日期&#xff1a;2024.02.07 使用工具&#xff1a;Node.js 加密方法&#xff1a;未知 / 标准库Hmac-SHA512 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 可使用AES进行解密处理&#xff08;直接解密即可&#xff09;&#xff1a;AES加…

突破编程_C++_面试(基础知识(8))

面试题20&#xff1a;什么内存对齐 以结构体为例来说明内存对齐&#xff1a; 结构体对齐是编译器在内存中布局结构体成员时遵循的一种规则。对齐的目的是提高内存访问效率&#xff0c;减少因内存访问不对齐而引发的性能下降或硬件异常。 在大多数系统中&#xff0c;数据对齐通…

pydantic了解学习

文章目录 什么是pydantic安装pydanticpydantic主要特性数据验证数据解析和序列化简化数据处理 什么是pydantic Pydantic是一个Python库&#xff0c;用于数据解析和验证。通过定义类模型并设定类型注解&#xff0c;Pydantic可以确保我们在处理数据时&#xff0c;数据的格式和类…

Java学习15-- 面向对象学习3. 对象的创建分析【★】

&#xff08;本章看不懂多读几遍&#xff0c;弄懂后再往下章看&#xff09; 面向对象学习3. 对象的创建分析 Java Memory Structure: 如上图所示&#xff1a; 主要分为Stack和Heap Memory 其中Stack主要放method包括main 程序从main开始所以main最先进入Stack&#xff0c;等…

【Langchain+Streamlit】打造一个旅游问答AI

利用LangchainStreamlit打造一个交互简单的旅游问答AI机器人&#xff0c;如果你有openai账号,可以按照如下的网址直接体验&#xff0c;如果你没有的话可以站内私信博主要一下临时key体验一下&#xff1a; 产品使用传送门—— http://101.33.225.241:8501/ 这里有演示效果和代码…

蓝桥杯(Web大学组)2023省赛真题3:收集帛书碎片

需要实现&#xff1a; 1.将二维数组转为一维数组&#xff1b; 2.数组去重 一、将二维数组转为一维数组&#xff1a; 二、数组去重&#xff1a; function collectPuzzle(...puzzles) {// console.log(puzzles);// console.log(...puzzles);// TODO:在这里写入具体的实现逻辑/…

论文阅读-Examining Zero-Shot Vulnerability Repair with Large Language Models

1.本文主旨&#xff1a; 这篇论文探讨了使用大型语言模型&#xff08;LLM&#xff09;进行零射击漏洞修复的方法。人类开发人员编写的代码可能存在网络安全漏洞&#xff0c;新兴的智能代码补全工具是否能帮助修复这些漏洞呢&#xff1f;在本文中&#xff0c;作者研究了大型语言…

最新话费充值系统源码,附带系统安装教程

搭建教程 亲测环境&#xff1a;PHP7.0MySQL5.6 PHP扩展安装&#xff1a;sg11 数据库配置文件路径&#xff1a;/config/database.php 伪静态设置为thinkphp 后台地址&#xff1a;/admin 账号密码&#xff1a;admin/123456

ASP.NET Core MVC 控制查询数据表后在视图显示

如果是手动写代码&#xff0c;不用VS自带的一些控件&#xff0c;那比较简单的方式就是把查询的数据集&#xff0c;逐条赋给对象模型&#xff0c;再加到List&#xff0c;最后在控制加到 ViewBag&#xff0c;视图循环显示ViewBag变量 控制器代码 List<Users> list new Li…

node.js后端+小程序前端+mongoDB(增删改查)

前言 今天我对比了以下node.js的express与python的fastAPI&#xff0c;我决定我还是出一期关于node.jsmangoDB小程序的小案例吧。 不是python的fastAPI不好用&#xff0c;因为fastAPI是python较新的技术&#xff0c;我不敢果断发出教学文章&#xff08;这件事情还是留着给pyt…

[机器学习]K-means——聚类算法

一.K-means算法概念 二.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt # 画图依赖 from sklearn.datasets import make_blobs # 从sklearn中直接生成聚类数据# 1. 数据加载 # 生成&#xff08;n_samples&#xff1a;样本点&#xff0c;centers&…

PostgreSQL不停机迁移数据

通常涉及到数据迁移&#xff0c;常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。 不停机数据迁移在本质上&#xff0c;可以视作由三个操作组成&#xff1a; 复制&#xff1a;将目标表从源库逻辑复制到宿库。改读&#xff1a;将应用读取路径由源库迁移到宿库上…

从零开始手写mmo游戏从框架到爆炸(零)—— 导航

从今天开始我们尝试从零开始写一个mmo的游戏。主要技术还是netty。参考了网上很多的大神的框架&#xff0c;本来希望基于ioGame或者vert.x等来直接写功能的&#xff0c;觉得从零开始更有意义&#xff0c;而且咱们也不需要太NB的底层功能&#xff0c;够用就行。 下面是导航&…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE)&#xff0c; 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP&#xff0c;以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…

幻兽帕鲁转移/迁移游戏存档之后,无法迁移角色存档,进入游戏需要重新建角色问题(已解决),服务器到服务器之间的存档转移

很多朋友在迁移幻兽帕鲁游戏存档到服务器的时候&#xff0c;可能会遇到一个问题&#xff0c;就是迁移完成后&#xff0c;进入到游戏会发现又需要从头开始&#xff0c;重新新建角色。 其实这个问题也很好解决&#xff0c;因为Palworld服务端有两种&#xff0c;一种是有APPID&…

SpringFramework实战指南(六)

SpringFramework实战指南(六) 4.4 基于 配置类 方式管理 Bean4.4.1 完全注解开发理解4.4.2 实验一:配置类和扫描注解4.4.3 实验二:@Bean定义组件4.4.4 实验三:高级特性:@Bean注解细节4.4.5 实验四:高级特性:@Import扩展4.4.6 实验五:基于注解+配置类方式整合三层架构组…

vue项目集成booststrap

1.首先安装bootstrap npm install bootstrap 我安装的是4.3的版本 2.在main.js中引用bootstrap import bootstrap/dist/css/bootstrap.css import bootstrap/dist/css/bootstrap.min.css import bootstrap/dist/js/bootstrap.js import bootstrap/dist/js/bootstrap.min.…

(Python)字典列表数据本地存储工具

前言 一个简单的实现简便 "列表字典" 数据存储本地。 适合不会SQL但又想实现数据存储本地的同学。 操作使用都非常简单。 文件只做了简单的加密处理&#xff0c;如果需要复杂加密的同学可以修改加密函数。 温馨提示&#xff1a; 1.使用前&#xff0c;在项目目录…