博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CTF常用工具之汇总
阅读量:5038 次
发布时间:2019-06-12

本文共 7608 字,大约阅读时间需要 25 分钟。

前言:因为最近在玩一下CTF(sql注入是真的不会玩呀?(T_T) (T_T) )所以经常会用到一些像什么进制转换呀?base64 32 16编码解码呀?当然这些工具网上都有!但是每次都打开网页 总是感觉很麻烦所以就萌生了一个想法能不自己写一个脚本把这些功能集合在一起!就像kali里面的工具一样!这样的话想用的时候岂不是很方便?所以从昨天下午开始写到今天上午中午终于把这个工具脚本写完了!我们先看一下预览图

 

      当然这里只是集成我自己常用的一些功能!如果你们需要扩容也是非常容易的,

(1)    首先说一下这个脚本需要的包

import hashlib

import base64

from urllib import quote,unquote

import argparse

此工具需要运行在python3的环境下

(2)    下面就是代码部分,里面有详细的注释,如果还是看不懂代码里面有我的QQ

#-*- coding:utf-8 -*-import hashlibimport base64from urllib import quote,unquoteimport argparse"""                名字:CTF之常用工具汇总                作者:白猫                时间:2018-3-22                QQ :1058763824        """def menu():    usage = """-m MD5 encryption       -s      SH1 encryption       -h      Show help information       -b64    Base64 encode       -b32    Base32 encode       -b16    Base16 encode       -db64   Base64 decode       -db32   Base32 decode       -db16   Base16 decode       -urlen  URL encode       -urlde  URL decode       -bin    Binary To Decimal       -octal  Octal  to Decimal       -hex    Hexadecimal to Decimal       -dbin   Decimal To Binary        -doctal Decimal to Octal        -dhex   Decimal to Hexadecimal       -ord    Letter To ASCII           Example  -ord asdfasfa      -ord='dfafs afasfa  asfasf'       -chr    ASCII  To Letters         Example  -chr 105           -chr = '102 258 654'               """    #在使用ord 和chr命令的时候要注意如果输入的字符和数字不包含空格则直接实用例子前面的命令如果包含空格则使用后面的命令    parser = argparse.ArgumentParser()    parser.add_argument('-m',dest='md',help='MD5 encryption')    parser.add_argument('-s', dest='sh', help='SH1 encryption')    parser.add_argument('--h',action="store_true",help='Show help information')    parser.add_argument('-b64', dest='b64', help='Base64 encode')    parser.add_argument('-b32', dest='b32', help='Base32 encode')    parser.add_argument('-b16', dest='b16', help='Base16 encode')    parser.add_argument('-db64', dest='db64', help='Base64 decode')    parser.add_argument('-db32', dest='db32', help='Base32 decode')    parser.add_argument('-db16', dest='db16', help='Base16 decode')    parser.add_argument('-urlen', dest='urlen', help='URL encode')    parser.add_argument('-urlde', dest='urlde', help='URL decode')    parser.add_argument('-bin', dest='bin', help='Binary To Decimal')    parser.add_argument('-octal', dest='octal', help='Octal  to Decimal')    parser.add_argument('-hex', dest='hex', help='Hexadecimal to Decimal')    parser.add_argument('-dbin', dest='dbin', help='Decimal To Binary ')    parser.add_argument('-doctal', dest='doctal', help='Decimal to Octal ')    parser.add_argument('-dhex', dest='dhex', help='Decimal to Hexadecimal')    parser.add_argument('-ord', dest='ord', help="Letter To ASCII               Example  -ord aaaaaa  , -ord=\"aaa aaa\"")    parser.add_argument('-chr', dest='chr', help="ASCII  To Letter              Example  -chr 105     ,  -chr = \"101 101\" ")    options = parser.parse_args()    if options.md:        s = options.md        md5(s)    elif options.sh:        s = options.sh        sh1(s)    elif options.b64:        s = options.b64        stringToB64(s)    elif options.b32:        s = options.b32        stringToB32(s)    elif options.b16:        s = options.b16        stringToB16(s)    elif options.db64:        s = options.db64        b64ToString(s)    elif options.db32:        s = options.db32        b32ToString(s)    elif options.db16:        s = options.db16        b16ToString(s)    elif options.urlen:        s = options.urlen        urlEncode(s)    elif options.urlde:        s = options.urlde        urlDecode(s)    elif options.bin:        s = options.bin        binToDec(s)    elif options.octal:        s = options.octal        octToDec(s)    elif options.hex:        s = options.hex        hexToDec(s)    elif options.dbin:        s = options.dbin        decToBin(s)    elif options.doctal:        s = options.doctal        decToOct(s)    elif options.dhex:        s = options.dhex        decToHex(s)    elif options.doctal:        s = options.doctal        decToOct(s)    elif options.dhex:        s = options.dhex        decToHex(s)    elif options.ord:        s = options.ord        lettToASCII(s)    elif options.chr:        s = options.chr        asciiToLett(s)    else:        helpInfo()def helpInfo():    print("""-m MD5 encryption       -s      SH1 encryption       --h      Show help information       -b64    Base64 encode       -b32    Base32 encode       -b16    Base16 encode       -db64   Base64 decode       -db32   Base32 decode       -db16   Base16 decode       -urlen  URL encode       -urlde  URL decode       -bin    Binary To Decimal       -octal  Octal Decimal to Decimal       -hex    Hexadecimal to Decimal       -dbin   Decimal To Binary        -doctal Decimal to Octal        -dhex   Decimal to Hexadecimal       -ord    Letter To ASCII  attention  Example  -ord asdfasfa      -ord="dfafs afasfa  asfasf"       -chr    ASCII  To Letters           Example  -chr 105           -chr = "102 258 654"""")# 进行MD5加密def md5(s):    original = s    md  = hashlib.md5()    s = s.encode(encoding = 'utf-8')    md.update(s)    print('Original:'+original)    print('Md5 Encryption:'+md.hexdigest())#进行sh1加密def sh1(s):    original = s    sh = hashlib.sha1()    s = s.encode(encoding='utf-8')    print('Original:' + original)    print('SH1 Encryption:' + sh.hexdigest())#将字符串转换为base64编码格式def stringToB64(s):    encode = base64.b64encode(s)    print('Original:' + s)    print('Base64 encode:' + encode)#将base64编码格式转化为正常的字符类型def b64ToString(s):    decode = base64.b64decode(s)    print('Base64:' + s)    print('Base64 decode:' + decode)#将字符串转为b32编码格式def stringToB32(s):        encode = base64.b32encode(s)    print('Original:' + s)    print('Base32 encode:' + encode)    #将base32编码格式转化为正常的字符类型def b32ToString(s):    decode = base64.b32decode(s)    print('Base32:' + s)    print('Base32 decode:' + decode)# 将字符串转为base16编码格式def stringToB16(s):    encode = base64.b16encode(s)    print('Original:' + s)    print('Base16 encode:' + encode)# 将base16编码格式转化为正常的字符类型def b16ToString(s):    decode = base64.b16decode(s)    print('Base16:' + s)    print('Base16 decode:' + decode)#进行url编码def urlEncode(s):    encode = quote(s)    print('Original:' + s)    print('URL encode:' + encode)#进行url编码def urlDecode(s):    decode = unquote(s)    print('URL encode:' + s)    print('URL decode:' + decode)#将二进制转化为十进制def binToDec(s):    result = int(s,2)    print('Binary :'+str(s))    print('Decimal :' + str(result))# 将八进制转化为十进制def octToDec(s):    result = int(s, 8)    print('Octal :' + str(s))    print('Decimal :' + str(result))# 将十六进制转化为十进制def hexToDec(s):    result = int(s, 16)    print('Hex :' + str(s))    print('Decimal :' + str(result))# 将十进制转化为二进制def decToBin(s):    s = int(s)    result = bin(s)    print('Decimal:' + str(s))    print('Binary:' + str(result))# 将十进制转化为八进制def decToOct(s):    s = int(s)    result = oct(s)    print('Decimal :' + str(s))    print('Octal :' + str(result))# 将十进制转化为十六进制def decToHex(s):    s = int(s)    result = hex(s)    print('Decimal :' + str(s))    print('Hex :' + str(result))#将字母转化为对应的ASCIIdef lettToASCII(s):   print('Letters:'+s)   result = ''   for i in s:       result = result+str(ord(i)) + ' '   print('ASCII  :'+result)#将ASCII转化为对应的字母以及字符def asciiToLett(s):   list=s.split(' ')   result = ''   print('ASCII    :'+s)   for i in list:       i = int(i)       result =result + chr(i)   print('Letters  :'+result)if __name__=='__main__':    menu()

(3) 下面贴几张工具使用图

图一ASCII与字符之间的转换图

图二 ,十进制与其他进制之间的转换图

后言:该工具的扩展性还是非常强的!你们完全可以根据自己的需要在里面加一些经常用到的功能!

哎。。。要回去看sql注入的文章了!sql注入是真的不会玩呀~~>_<~~

转载于:https://www.cnblogs.com/baimaoma/p/8624307.html

你可能感兴趣的文章
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>
ArchLinux安装开源VMware Tools
查看>>