Web学习4

  1. 知识点:
  2. 复现
  3. 思维导图

知识点:

1、存储密码加密-Web&数据库&系统
2、传输数据编码-各类组合传输参数值
3、代码特性加密、JS&PHP&NET&JAVA
4、数据显示编码-字符串数据显示编码

本课意义:
1、了解加密编码进制在安全测试中的存在
2、掌握常见的加密解密编码解码进制互转的操作
3、了解常见的加密解密编码解密进制互转的影响
旨在解决类似疑问,提供思路:
你是否碰到不知道的加密方式?
你是否碰到无法找到的解密平台?
你是否碰到不知道如何解密的字符串?
你是否准备参加CTF比赛补充此类知识点?

详细点
密码存储加密:
MD5 SHA1 NTLM AES DES RC4
MD5值是32位或16位由数字“0-9”和字母“a-f”所组成的字符串
SHA1这种加密的密文特征和MD5差不多,只不过位数是40
NTLM这种加密是Windows的哈希密码,标准通讯安全协议
AES,DES,RC4这些都是对称性加密算法,引入密钥,密文特征与Base64类似
应用场景:各类应用密文,自定义算法,代码分析,CTF安全比赛等。

传输数据编码:
Base64 URL HEX ASCII
BASE64值是由数字“0-9”和字母“a-f”所组成的字符串,大小写敏感,结尾通常有符号=
URL编码是由数字“0-9”和字母“a-f”所组成的字符串,大小写敏感,通常以%数字字母间隔
HEX编码是计算机中数据的一种表示方法,将数据进行十六进制转换,它由0-9,A-F,组成
ASCII编码是将128个字符进行进制数来表示,常见ASCII码表大小规则:09<AZ<a~Z
举例:
个人博客-URL解码
国外WEB-BASE64解码
搜狐视频-BASE64解码
应用场景:参数传递(如注入影响),后期WAF绕过干扰写法应用,视频地址还原等。

JS前端代码加密:
JS颜文字 jother JSFUCK
颜文字特征:一堆颜文字构成的js代码,在F12中可直接解密执行
jother特征:只用!÷ ( ) [ ] { } 这八个字符就能完成对任意字符串的编码。也可在F12中解密执行
JSFUCK特征:与jother很像,只是少了{ }

后端代码加密:
PHP .NET JAVA
PHP:乱码,头部有信息
.NET:DLL封装代码文件
JAVA:JAR&CLASS文件
举例:Zend ILSpy IDEA
应用场景:版权代码加密,开发特性,CTF比赛等

数据库密文加密:
MYSQL,MSSQL等

数据显示编码:
UTF-8 GBK2312等

识别算法编码类型:
1、看位数
2、看密文的特征(数字,字母,大小写,符号等)
3、看当前密文存在的地方(WEB,数据库,操作系统等应用)

复现

演示案例:
Web-ZZCMS-密文-MD5
Web-Discuz-密文-MD5&Salt
系统-Windows-密文-NTLM&HASH
综合-参数-密文传输-AES&BASE64
CTF赛题-buuoj-single dog-JS颜文字
CTF赛题-xuenixiang-Jsfuck-JSFUCK

1、Web-ZZCMS-密文-MD5

phpstudy搭建环境后,在本地的网站里注册一个账号,连接数据库后,在表单的zzcms_user一栏里看到了自己最新注册的账号。

可以看到密码进入数据库后被自动加密了,我们尝试去网站进行解密操作

设置的简单密码被网站直接解密出来了,但是小迪演示的那个密码xiao8是要会员才能查询的,不想充钱了,所以密码设简单点

PS:如果密文足够的复杂的话,网站是很难解密出来的。这就是加密的意义

2、Web-Discuz-密文-MD5&Salt

记录搭网站时候踩的坑:

他说要将压缩包里upload目录内的文件上传到域名绑定的目录中,不能直接把upload放进去,而是要把upload文件夹剥掉,把里面的东西放进去……其实以前也遇到过,但是就是不长记性。

在这张表里发现了我刚刚注册的用户和被加密过的密码,这个密码的原文就是123456

Discuz论坛的加密方式

你正常查是查不到的,得知道它的算法后再查

成功查到密码是admin

3、系统-Windows-密文-NTLM&HASH

坑:要以管理员权限运行mimikatz才可以抓取密码

由于我刚装的虚拟机,还没有设置密码呢,所以密码那里写的null……

4、综合-参数-密文传输-AES&BASE64

就简单的aes和base64

5、CTF赛题-buuoj-single dog-JS颜文字
拿到一张图片,先用foremost提取文件

得到一个压缩包,解压后里面的txt文件是JS颜文字,找网站解密

1
2
3
4
5
aaencode是一种基于JavaScript的文本加密工具。其原理主要是通过执行混淆算法,将可执行的代码转换成为ASCII字符形式的字符串,并在字符串中插入一些不可见字符、注释以及字符串操作指令指令。

首先,aaencode会先把要加密的代码转换成字节数组,然后再对这个字节数组的每一个元素执行加密运算。最后,它把结果转换成一组ASCII字符形式的字符串,进行输出。

aaencode是一个加密工具,能够将可执行的文本编码成绝大部分ASCII字符的形式,其中少数字符需要解码后才能运行原来的程序。它的出现可以使我们在部分情况下大大提高文本的安全性。

直接一把梭得到flag SUCTF{happy double eleven}

6、CTF赛题-xuenixiang-Jsfuck-JSFUCK

查看网页源代码发现一串JSFUCK的字符

找个网站运行一下,找到flag ctf{whatfk}

思维导图