MISC中常用python脚本

VSole2021-09-20 20:26:46

栅栏密码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
string = input("输入:")
frequency = [] # 获得栅栏的栏数
result_len = len(string)        # 栅栏密码的总长度  25
for i in range(2, result_len):   # 最小栅栏长度为2   逐个测试2,3,4....
    if(result_len % i == 0):        # 当栅栏密码的总长度 模 i 余数为0  则这个i就是栅栏密码的长度
        frequency.append(i)
for numberOfColumn in frequency:   # 循环可能分的栏数
    RESULT = []                 #  保存各栏数的结果
    for i in range(numberOfColumn):     #   i : 开始取值的位置
        for j in range(i, result_len, numberOfColumn):  # 开始取值, 隔栏数取一个值, 起始位置是i
            RESULT.append(string[j])
    print("".join(RESULT))

凯撒密码:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import string
inputStr = input("输入:").lower()
caseS1 = string.ascii_lowercase * 2
for j in range(26):
    result_list = []
    for i, num in zip(inputStr, range(len(inputStr))):
        status = caseS1.find(i)
        if status != -1:
            result_list.append(caseS1[status + j])
        else:
            result_list.append(inputStr[num])
    print("".join(result_list), "向右偏移了{}位".format(j))

ROT13

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import string
s1 = ""
rot13_1 = string.ascii_lowercase[:13]
rot13_2 = string.ascii_lowercase[13:]
result = []
for i in s1:
    find_1 = rot13_1.find(i.lower())
    if find_1 != -1:
        if i.isupper():
            result.append(rot13_2[find_1].upper())
            continue
        result.append(rot13_2[find_1])
    find_2 = rot13_2.find(i.lower())
    if find_2 != -1:
        if i.isupper():
            result.append(rot13_1[find_2].upper())
            continue
        result.append(rot13_1[find_2])
    if find_1 == -1 and find_2 == -1:
        result.append(i)
     
print("". join(result))

4进制

s='1212 1230 1201 1213 1323 1012 1233 1311 1302 1202 1201 1303 1211 301 302 303 1331'
l=s.split(' ')
for i in l:
    tmp=0
    for j in range(len(i)):
        tmp+=(4**j)*int(i[-j-1])
print (chr(int(tmp)),end='')

小数转字符串

import struct
import binascii
s=[72065910510177138000000000000000.000000,71863209670811371000000.000000,18489682625412760000000000000000.000000,72723257588050687000000.000000,4674659167469766200000000.000000,19061698837499292000000000000000000000.000000]
a=''
b=''
for i in s:
    i=float(i)
    tmp=struct.pack('<f', i).hex()#小端
    a+=tmp
for j in s:
    j=float(j)
    tmp=struct.pack('>f', j).hex()#大端
    b+=tmp
print (binascii.a2b_hex(a))
print (binascii.a2b_hex(b))

培根密码

letters1 = [
    'A', 'B', 'C', 'D', 'E', 'F', 'G',
    'H', 'I', 'J', 'K', 'L', 'M', 'N',
    'O', 'P', 'Q', 'R', 'S', 'T',
    'U', 'V', 'W', 'X', 'Y', 'Z',
]
letters2 = [
    'a', 'b', 'c', 'd', 'e', 'f', 'g',
    'h', 'i', 'j', 'k', 'l', 'm', 'n',
    'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z',
]
cipher1 = [
    "aaaaa", "aaaab", "aaaba", "aaabb", "aabaa", "aabab", "aabba",
    "aabbb", "abaaa", "abaab", "ababa", "ababb", "abbaa", "abbab",
    "abbba", "abbbb", "baaaa", "baaab", "baaba", "baabb",
    "babaa", "babab", "babba", "babbb", "bbaaa", "bbaab",
]
cipher2 = [
    "AAAAA", "AAAAB", "AAABA", "AAABB", "AABAA", "AABAB", "AABBA",
    "AABBB", "ABAAA", "ABAAA", "ABAAB", "ABABA", "ABABB", "ABBAA",
    "ABBAB", "ABBBA", "ABBBB", "BAAAA", "BAAAB", "BAABA",
    "BAABB", "BAABB", "BABAA", "BABAB", "BABBA", "BABBB",
]
def bacon1(string):
    lists = []
    # 分割,五个一组
    for i in range(0, len(string), 5):
        lists.append(string[i:i+5])
    # print(lists)
    # 循环匹配,得到下标,对应下标即可
    for i in range(0, len(lists)):
        for j in range(0, 26):
            if lists[i] == cipher1[j]:
                # print(j)
                print(letters1[j], end="")
    print("")
def bacon2(string):
    lists = []
    # 分割,五个一组
    for i in range(0, len(string), 5):
        lists.append(string[i:i+5])
    # print(lists)
    # 循环匹配,得到下标,对应下标即可
    for i in range(0, len(lists)):
        for j in range(0, 26):
            if lists[i] == cipher2[j]:
                # print(j)
                print(letters2[j], end="")
    print("")

在流量包中查找sql注入语句

#请先将pcapng包另存为pcap
keystr=r'.php?id=1%27and%20(select%20ascii(substr((select%20skyflag_is_here2333%20from%20flag%20limit%200,1),{0}'
l=[None]*33
with open(r'C:\Users\Crazy\Desktop\2.pcap','r',encoding='ISO-8859-1') as f:
    for i in f.readlines():
        for j in range(1,34,1):
            if keystr.format(j)+',' in i:
                tmp=i
                l[j-1]=tmp.split("=")[-1]
for i in l:
    tmp=i.split(r'%23')[0]
    print (chr(int(tmp)),end='')

将十六进制写入文件

s = '68656C6C6F20776F726C64'
a = bytes.fromhex(s)
with open('123.txt','wb') as f:
    f.write(hex(s))
stringpython for循环
本作品采用《CC 协议》,转载必须注明作者和本文链接
mruby是一个Ruby语言的轻量级实现,mruby工作方式类似CPython,它可以将Ruby源码编译为字节码,再在虚拟机中解释运行。
前 言 欢迎各位大佬们给该项目点一个star https://github.com/flipped-aurora/gin-vue-admin/
sql注入已经出世很多年了,对于sql注入的概念和原理很多人应该是相当清楚了,SSTI也是注入类的漏洞,其成因其实是可以类比于sql注入的。BladeBlade 是 Laravel 提供的一个既简单又强大的模板引擎。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。
0x00 Preface内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。当然,概念是生涩难懂的,结合实际环境会有助于理解。实际上有很多优秀的集成化工具,很少会拆分开来单独使用这些方法。当然,大多数情况下是要考虑免杀的,免杀时可能会将某一步操作拆分出来,单独进行免杀和利用。
0x00 Preface内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。当然,概念是生涩难懂的,结合实际环境会有助于理解。实际上有很多优秀的集成化工具,很少会拆分开来单独使用这些方法。当然,大多数情况下是要考虑免杀的,免杀时可能会将某一步操作拆分出来,单独进行免杀和利用。
评价神经网络的方法和评价机器学习的方法大同小异,常见的包括误差、准确率、R2 score、F值等。
MISC中常用python脚本
2021-09-20 20:26:46
MISC中常用python脚本总结
为了进行并行处理,我们将任务划分为多个子单元。我们将把数据以数组的形式送入函数,它将根据可用的工作者的数量,一次并行处理多个值。这些工作器是基于你的处理器内的核心数量的。Python包减少大文件的处理时间。处理时间可能因机器不同而不同。我们将导入multiprocessing、joblib和tqdm用于并行处理,pandas用于数据摄取,re、nltk和string用于文本处理。
前段时间打了场PWN2WIN,期间遇到了这道BIOS题,正好来学习一下UEFI PWN。
VSole
网络安全专家