在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备。
#知识点:
- 存储密码加密-Web&数据库&系统
- 传输数据编码-各类组合传输参数值
- 代码特性加密-JS&PHP&NET&JAVA
- 数据显示编码-字符串数据显示编码
常见加密编码等算法解析
MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES等
- MD5(不可逆)
16位和32位,加密密文字符串由A-Z,0-9随机分配,80%网站管理员或用户密码加采取MD5加密。(不可逆)
网上的MD5在线工具,它的解密过程是用了枚举方法 - SHA
由A-Z,0-9随机组合,SHA1,SHA256,SHA384,SHA512长度固定。(不可逆)
- 进制
16进制加密 - 时间戳
网站或者服务器脚本语言里经常会使用,会在数据库里用户登录和注销,注册里会使用
- URL
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式 - BASE64
大小写随机组合,在字符串后面经常出现一个或两个等号
明文越长,密文越长
常见应用:代码、密码、参数
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
- unescape
%u+4位数字,对应两位字符,主要应用WEB应用上 - AES
是一种安全的加密方式,涉及到密码,偏移量,数据块,填充,在加密时候涉及到4种随机性。解密难度大。用base64解密出来是乱码,有很大可能是AES加密。有时候/出现在字符串里面。比较注重安全和大型网站、安全比赛
注:必须有密码和偏移量,否则无法进行解密
- DES
类似于BASE64,有时候+会出现字符串里
常见加密形式算法解析
直接加密,带salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等
常见加密方式
枚举,自定义逆向算法,可逆向
了解常规加密算法的特性
长度位数,字符规律,代码分析,搜索获取等
涉及在线工具
时间戳(Unix timestamp)转换工具 - 在线工具
http://tool.chacuo.net/cryptaes
在线DES加密/解密工具 - 密码工具箱 - 脚本之家在线工具
演示:SQL注入漏洞测试(参数加密)
- 进入题目
- 使用御剑扫描该IP
- 在浏览器中输入该URL,发现使用PHP文件
- 访问该URL,下载压缩包并解压
- 得到解密源码
- 审计源码,发现是由两次base64加密得到。
一次base64解密,
- 二次base64解密:
选中对应模式:
AES加密模式:CBC、数据块:128位、密码:ydhaqPQnexoaDuW3、偏移量:2018201920202021
解密得出:1_mozhe - 审计代码,最终得出值为:1
在SQL注入时,要将1 and 1=1或者其他payload共同按格式加密之后才可以进行
部分资源:
https://www.cmd5.com
http://tmxk.org/jother
http://www.jsfuck.com
http://www.hiencode.com
http://tool.chacuo.net/cryptaes
https://utf-8.jp/public/aaencode.html
1.30余种加密编码类型的密文特征分析(建议收藏)
https://mp.weixin.qq.com/s?__biz=MzAwNDcxMjI2MA==&mid=2247484455&idx=1&sn=e1b4324ddcf7d6123be30d9a5613e17b&chksm=9b26f60cac517f1a920cf3b73b3212a645aeef78882c47957b9f3c2135cb7ce051c73fe77bb2&mpshare=1&scene=23&srcid=1111auAYWmr1N0NAs9Wp2hGz&sharer_sharetime=1605145141579&sharer_shareid=5051b3eddbbe2cb698aedf9452370026#rd
2.CTF中常见密码题解密网站总结(建议收藏)
https://blog.csdn.net/qq_41638851/article/details/100526839
3.CTF密码学常见加密解密总结(建议收藏)
https://blog.csdn.net/qq_40837276/article/details/83080460