首页 > 其他分享 >雷池社区版自动化拉黑ip,使用OPEN API实现

雷池社区版自动化拉黑ip,使用OPEN API实现

时间:2024-11-26 10:56:07浏览次数:8  
标签:雷池 拉黑 ip E6% 接口 url API data

老版本使用雷池社区版的时候都需要在界面操作,但是网络攻击往往都是无规律的,每次都手动操作非常累

前一段时间雷池社区版刚好开放了OPEN API 功能,可以支持大家使用API的方式进行管理了

但是没有相关文档非常难受,一直没有使用相关功能

 

前几天的7.2版本又公开api文档,诚意满满

这次专门做一个自动拉黑的脚本,分享给大家

 

关于如何使用open可以参考这个文档:

https://docs.waf-ce.chaitin.cn/%E6%9B%B4%E5%A4%9A%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3/OPENAPI

 

 

说一下思路

 

  1. 先手动创建一个ip组,设置为黑名单,手动获取ip组的id
  2. 开启高频攻击封禁功能,方便筛选出多次攻击的ip(可以设置大一些,多获取一些恶意ip)
  3. 使用接口获取高频攻击的ip
  4. 把获取的高频攻击ip放入ip组

 

 

前置工作:

1.成一个TOKEN,用于专门的自动化使用

token:07ztvayj0rQl3GnMZ32F21LaJz0MvbtJ

 

 

2.添加一个自动拉黑的ip组,用于后续的自定义拉黑

 

 

3.增加一个黑名单,匹配目标为上文创建的ip组

 

 

 

实现脚本:

  1. 手动设置一个高频攻击规则,封禁时间这里设置10分钟(目的只是获取高频攻击的ip)

 

  1. 使用 找到接口文档内的获取高频攻击的接口

如果不好找可以页面f12 看看哪一个,然后进页面搜索

 

 

 

 

示例代码是:

import requests
import json

header = {
    "X-SLCE-API-TOKEN": "xxxxx"
}
#添加站点的URL
url = 'https://xxxx:9443/api/open/records/acl?page=1&page_size=20'



r=requests.get(url=url,headers=header,verify=False)
print(r.text)

 

把对结果获取ip的逻辑加上,让其输出一个ip列表

当前逻辑是对第一页的url请求进行输出,大家根据实际请求调整

r=r.json()["data"]["data"]
ip_list=[]
for i in r:
        ip = i['ip']
        ip_list.append(ip)

 

自动获取ip完成后只要再调用写入ip组的接口即可

找到编辑接口

 

分析接口信息,只需要这样设置

ipgroup_url='https://101.126.66.231:9443/api/open/ipgroup'

data={
  "id": 3,
  "reference": "",
  "comment": "自动拉黑IP组",
  "ips": ip_list}
data = json.dumps(data)
r=requests.put(url=ipgroup_url,data=data,headers=header,verify=False)

 

就写完了最基本的查询+添加入黑名单

测试如下 

 

 

如果需要优化功能,比如确保每次增加的ip都是新的ip ,就需要先调用一次查询ip组拿到原来的ip列表了

查看ip组信息的接口

 

标签:雷池,拉黑,ip,E6%,接口,url,API,data
From: https://www.cnblogs.com/jaryn/p/18569712

相关文章

  • 网编(ip相关知识)
    目的:了解网络,掌握在linux下的网络编程,实现多机通信进程间通信方式:套接字socketC/SB/S学习方法:1. 记忆知识点主要记大框架,再记忆细节2. 按照框架和流程写代码3. 代码量比较大,出现问题先自己排查4. 重点在逻辑,代码可能会大量复制5. 项目重点先梳理项目框架,......
  • JavaScript 编程精解(Eloquent)第四版·翻译完成
    JavaScript编程精解(Eloquent)第四版第一章:引言第一部分:语言第二章:值、类型和运算符第三章:程序结构第四章:函数第五章:数据结构:对象和数组第六章:高阶函数第七章:对象的秘密生活第八章:项目:一个机器人第九章:漏洞和错误第十章:正则表达式第十一章:模......
  • Go进阶21:Goland 6条Tips让编程更有效率
    作为一个重度使用JetbrainsIDE全家桶的用户.这里我有几条可以加速您开发速度,减少您Paste/Copy敲打键盘的Tips.1.快速实现Interface操作步骤:光标移动到struct名称上Alt/Option+Enter选择ImplementInterface…Control+I搜索您需要实现的interface2.快速抽象I......
  • 深入理解与应用 multipart/form-data:文件上传与预览实现解析
    1.理解multipart/form-datamultipart/form-data是一种在HTTP请求中使用的MIME类型,主要用于在客户端和服务器之间传输包含文件或二进制数据的表单数据。它通过一个边界(boundary)来分隔不同的表单字段和文件数据。简单来说,multipart/form-data类型用于确保在表单中提......
  • NOip2024前最后一周训练日记
    也是有了博客了,上周花了点时间稍微搭了一下界面。闲话初三生,目前为止初中去过三个学校。第一个学校。这时基本没怎么沾OI,只是靠机构和自学了解的,因此前两年的CSP都基本是不好。记得初一下的时候,GF组织算法冬令营,原本想着打比赛打的好一点去进本部校队的,但我发现了甚至零基......
  • [Typescript] Deal with types of function overloads
    /***Utilityforextractingtheparametersfromafunctionoverload(fortypedemits)*https://github.com/microsoft/TypeScript/issues/32164#issuecomment-1146737709*/exporttypeOverloadParameters<Textends(...args:any[])=>any>=Parame......
  • [Javascript] About private access (Object.getOwnPropertySymbols)
    Wehaveamodule:constkey=Symbol('key')exportclassA{[key]=1value(){console.log(this[key])}}Itseemsthat keyisnotexposetooutsideofmodule,butstillweareabletogetit.import{A}from'./mod......
  • [Javascript] Encapsulate chunk operation
    functionmain(){constdatas=newArray(10000).fill(null).map((_,i)=>i)functiontaskHanlder(_,i){console.log(i)}performChunkNode(datas,taskHanlder)}main()functionperformChunk(datas,task,scheduler){if......
  • NOIP 模拟 16
    A图直接上std::bitset。B序列首先赋值在加法前,加法在乘法后,一个有效的赋值可以看做一个加法,乘法的顺序无所谓,直接加最大,考虑把加法转化成乘法,那就看加的数在原数的占比,需要考虑加法的顺序,一定是先加大的,所以直接排序后转化成乘法就好了。C树究极换根DP好题。先看\(D=......
  • NOIP 模拟 17
    A镜的绮想直接做,不过如果\(n=2e5\)咋做?B万物有灵倒着选一定最优,然后每\(K\)层是一个周期,为了避免分讨,使\(K\gets2K\),写完贡献的式子是等比数列,但是这题卡逆元,所以用矩阵加速或者倍增求和即可。C白石溪\(n^2\)DP容易想到,但是无论如何都需要石子数量的状态,整个是2D......