首页 > 编程语言 >python查找替换危险字符脚本

python查找替换危险字符脚本

时间:2023-10-10 20:34:31浏览次数:40  
标签:字符 字节 seq python dangerous image 查找 sequences print

为了沃滴好大儿的大创写了这么个脚本

代码如下:

 1 import io
 2 import base64
 3 
 4 def replace_dangerous_sequences(image_path):
 5     try:
 6         # 读取图像文件的内容
 7         with open(image_path, 'rb') as image_file:
 8             image_data = image_file.read()
 9 
10         # 定义危险字节序列的列表和替换为的空字节串
11         # 格式为 b'要查杀的字符'
12         dangerous_sequences = [b'<?php', b'?>', b'os']
13         replace_with = b''
14 
15         # 检查图像数据中是否包含危险字节序列
16         found_dangerous_sequences = []
17         for seq in dangerous_sequences:
18             if seq in image_data:
19                 found_dangerous_sequences.append(seq)
20 
21         # 如果发现危险字节序列,打印出来
22         find = 0
23         if found_dangerous_sequences:
24             print("发现危险字节序列:")
25             for seq in found_dangerous_sequences:
26                 print(seq)
27             find = 1
28         else:
29             print("未发现危险字节序列")
30 
31         # 替换图像数据中的危险字节序列为空字节串
32         if find == 1:
33             for seq in dangerous_sequences:
34                 image_data = image_data.replace(seq, replace_with)
35 
36             # 将替换后的数据保存到新的文件
37             with open(image_path, 'wb') as image_file:
38                 image_file.write(image_data)
39             print("危险字节序列已替换并保存到", image_path)
40     except Exception as e:
41         print("发生错误:", str(e))
42 
43 # 调用函数并传递图像文件路径作为参数
44 replace_dangerous_sequences("2.png")

需求有点难以理解,真要写防护的功能不如直接上传就直接查杀,不过谁让他是我滴好大儿呢

标签:字符,字节,seq,python,dangerous,image,查找,sequences,print
From: https://www.cnblogs.com/theskyforfly/p/17755656.html

相关文章

  • python计算 ico hash 值
    apt-getinstallpython3apt-getinstallpython3-pippipinstallmmh3importrequestsimportbase64importmmh3URL='https://www.baidu.com/favicon.ico'r=requests.get(URL)r1=r.contentr2=base64.encodebytes(r1)r3=mmh3.hash(r2)print('http.fav......
  • Python 常见排序:冒泡、选择、快速
    简单说明:1.冒泡排序:双层循环,交替结果2.选择排序:whilenums,假设第一个值为做小,通过for循环找到最小值以此来替换,再将nums中该值去掉继续上述步骤3.快速排序:定义一个初值,把整个数据列表分为两部分,再递归代码实现:#冒泡排序defaction1(n):foriinrange(len(n)):......
  • 【python】魔术方法大全(四)——类构建篇
    这期我们来聊聊和class建立有关的魔术方法。__init_subclass__魔术方法__init_subclass__是Python3.6新增的一个特殊方法,用于定义一个类(基类)被继承时所执行的逻辑。当一个类被定义为另一个类(基类)的子类时,它会自动调用__init_subclass__方法。__init_subclass__方法定义......
  • Python并发及网络编程进阶
    案例引入假如你们一家已上市的电商公司,在元旦来临前夕,领导需要你模拟用户,通过接口生成10万笔新订单。你该如何处理?方案探索串行:多个任务逐个执行的过程,上个任务执行完成前,阻塞下一个任务执行。并发:多个任务交替执行的过程,这些任务可能在同一时间段内执行,但是它们的执行时......
  • cpsc 103 python基本前提
    python基本知识基本运算符1.(**)是次方ex:2**3evaluatesto(2tothepowerof3)82.(%)是求余数ex:15%4evaluatestobecausetheremainderwhendividing15by4is33基本运算规则1.str乘以数字ex:'hello'*2evalutesto'hellohello'2.[a......
  • python31days
    组合反射(通过字符串来操作属性)getattrsetattrhasattrdelattr魔术方法(内置方法,双下划线开头的方法)异常———————————————————————————————————......
  • docker搭建pypi服务,实现python包版本永久保存
    1.宿主机上安装htpasswdpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplehtpasswd2.使用htpasswd生成账户和密码htpasswd-schtpasswd.txttestuser3.拉取pypiserver镜像dockerpullpypiserver/pypiserver4.使用docker安装pypi容器4.1.创建数据卷docker......
  • 【PyQt6】Python窗口拖拽文件并响应的实现
    情景大概应用情景为:将一个文件拖入到窗口内,地址栏显示文件路径,文本框显示文件内容。说明实现拖拽必须在exec前设置QMineDate,否则不会开始拖拽操作。实现fromPyQt6.QtCoreimport*calssMainWindow(QMainWindow,Ui_MainWindow): def__init__(self): super().__init__......
  • Python 反射
    反射通过字符串映射或修改程序运行时的状态、属性、方法,有以下4个方法。hasattr(obj,name_str)#判断一个对象里是否有对应的name_str字符串的方法映射getattr(obj,name_str)#根据字符串去获取obj对象里的对应的方法的内存地址setattr(obj,"y",z),isequivalent(相当于)(to)......
  • 利用Python爬虫打造SEO智能关键词聚合
    在当今互联网的竞争激烈时代,网站的SEO优化至关重要。而关键词是SEO优化的核心,选择恰当的关键词能够带来更多的流量和用户。本文将为您揭秘一项SEO黑科技:如何利用Python爬虫打造智能关键词聚合工具。通过这个工具,您可以快速地扫描和聚合与您网站相关的关键词,为您的SEO优化提供更准确......