请选择 进入手机版 | 继续访问电脑版

落羽黑客论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 102|回复: 12

利用分块传输绕过WAF 粘贴数据包信息后,对数据包进行分...

[复制链接]

137

主题

139

帖子

519

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
519
发表于 2021-9-21 16:49:04 | 显示全部楼层 |阅读模式
  1. # -*- coding:utf-8 -*-
  2. import random

  3. #随机拆分
  4. #拆分字符长度计算
  5. #随机插入注释信息

  6. all_chunklen = [] #用于存放所有的长度信息
  7. all_data = [] #用于存放所有正常数据
  8. all_garbages_datas = [] #用于存放垃圾数据
  9. All_data_remark_garb = [] #用于存放最终插入垃圾数据后的结果


  10. def random_split(string,count):
  11.     length = len(string)
  12.     num = range(1, length+1)  # 生成数字1~长度+1的列表,内容是不重复的
  13.     nums = random.sample(num, count)  # 从上面的列表中随机选取count个不同数字
  14.     nums.sort(reverse=False) # reverse=False表示升序,True表示降序

  15.     start_point = 0 #初始化第一次读取的起始位为0
  16.     for i in range(count): #因为range取的是0~count-1,所以这里count要+1
  17.         chunk_len = str(nums[i]-start_point)
  18.         print(chunk_len)
  19.         all_chunklen.append(chunk_len)
  20.         data = string[start_point:nums[i]]
  21.         all_data.append(data)
  22.         print(data)
  23.         start_point = nums[i] #作为下一次读取的起始位
  24.         #print(i)
  25.         if i == count-1:
  26.             chunk_len = str(length - start_point)
  27.             all_chunklen.append(chunk_len)
  28.             print(chunk_len)
  29.             data = string[start_point:length]
  30.             all_data.append(data)
  31.             print(data)
  32.             break



  33. def garbage_data(min_size,max_size,count):
  34.     alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*(),./\\|{}[] :;~`'
  35.     n = 0
  36.     #for data_len in random.randint(min_size,max_size+1): #生成每次要插入的垃圾数据长度
  37.     while n <= count:
  38.         data_len = random.randint(min_size,max_size+1)
  39.         characters = random.sample(alphabet, data_len)
  40.         characters_toStr = ';' + ''.join(characters)
  41.         n+=1
  42.         garbages_data = characters_toStr
  43.         all_garbages_datas.append(garbages_data)



  44. def create_rs_data(count): #通过拼接三个全局列表中的内容生成最后结果
  45.     for i in range(count+1):
  46.         data = str(all_chunklen[i]) + str(all_garbages_datas[i]).strip('\n') + '\n' + str(all_data[i])
  47.         print(data)



  48. if __name__ == '__main__':
  49.     string = input("输入待拆分字符串\n")
  50.     count = int(input("输入要拆分的块数\n")) - 1  #这里要注意,用户直接输入的数字是字符型不是数字型,需要做转换。输入多少就切割几次,输入2切割2次,变成3块,所以需要减1.
  51.     random_split(string, count)
  52.     choice = input("是否在注释中插入垃圾数据?(Y/N)\n")
  53.     if choice == "Y":
  54.         min_size = input("请输入垃圾数据的最小长度\n")
  55.         max_size = input("请输入垃圾数据的最大长度\n")
  56.         garbage_data(int(min_size),int(max_size),count)
  57.         create_rs_data(count)
  58.         input("按任意键退出...")
  59.     elif choice == "N":
  60.         input("按任意键退出...")
复制代码


回复

使用道具 举报

0

主题

1

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2021-9-21 16:49:02 | 显示全部楼层
顶一下!!
回复

使用道具 举报

0

主题

2

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2021-9-21 16:49:00 | 显示全部楼层
不错!!
回复

使用道具 举报

0

主题

1

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2021-9-21 16:48:58 | 显示全部楼层
非常好!!
回复

使用道具 举报

0

主题

2

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2021-9-21 16:49:00 | 显示全部楼层
赞!赞!!
回复

使用道具 举报

0

主题

1

帖子

35

积分

新手上路

Rank: 1

积分
35
发表于 2021-9-21 16:48:54 | 显示全部楼层
牛逼!!
回复

使用道具 举报

0

主题

2

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2021-9-21 16:48:58 | 显示全部楼层
支持!!!
回复

使用道具 举报

0

主题

1

帖子

35

积分

新手上路

Rank: 1

积分
35
发表于 2021-9-21 16:49:04 | 显示全部楼层
你历害!!
回复

使用道具 举报

0

主题

1

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2021-9-21 16:48:56 | 显示全部楼层
不错呀!!
回复

使用道具 举报

0

主题

1

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2021-9-21 16:48:46 | 显示全部楼层
你好棒!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|落羽黑客论坛

GMT+8, 2021-10-17 13:33 , Processed in 0.039366 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表