type
status
date
slug
summary
tags
category
icon
password
一、靶场的部署
按照docker的使用方式安装encrypt-labs后,启动环境会发现数据库连接失败

1.1 docker部署问题的解决
需要修改php容器下的datatbase.php的代码才能解决数据库连接失败的问题,具体操作如下:
- 使用
docker inspect encrypt_labs_mysql | grep MYSQL_ROOT_PASSWORD
去查看数据库的root密码

- 将database.php文件内容修改成如下的内容
再次访问就可以发现数据包的响应稍显正常,只是多了一个针对于aes.php的报错,其实也不影响使用。

- 想要能后续看到success.html的界面,来提供一点学习成就感的话

可以在aes.php文件的开头添加
error_reporting(0);
,即可正常使用
想要每一个加密靶场都能完全的正常使用,就要给每一种加密的php页面都要添加一遍
error_reporting(0);

否则依旧会出现session报错的情况

1.2 小皮面板部署靶场
添加网站

更具要求和实际情况填写网站的配置

继续按需求选取,数据库的信息在靶场的database.php的文件里,可以去复制黏贴。

导入encryptDB.sql文件的信息

然后就可以正常访问了

二、靶场攻略
2.1 AES固定Key
前端调试,选中submit,初步寻找加密函数的位置,目前可以初步确定加密行为存在于easy.js文件中。

ctrl+F 去搜索“AES、DES、encrypt、key”等关键词,可以找到如下的信息

如图可以知道这么几个信息:👇
将上述信息录入到burp的插件autoDecoder中,并填写入加密的内容进行解密测试

点击decrypt后,可以发现解密成功,那么就可以将添加为请求包加/解密方式

添加为响应包解密方式有所不同,需要将加/解密方式改为null之后在进行添加,最后记得保存设置。

为了能实现爆破、重放过程中对输入的的数据实现自动加解密,还需要对请求包的内容进行正则匹配。

同时需要配置加解密选项为自带算法加解密、加密域名和模块控制,并保存相关配置

点击重放即可实现实时加解密

查看日志就可以发现,请求包实际是以密文的形式发送出去的

由于勾选了爆破模块,所以可以对密码进行爆破,爆破结果如下。

2.1.1 python解密脚本
2.1.2 python加密脚本
2.2 关于爆破出现随机加密的情况
burp默认速率下进行100条参数的爆破过程中发现了230的响应。

点击日志进行查看发现他们都没被加密,所以提示了Invalid input,导致相应包长度意外的长。

👇这是日志中的正常数据包

再次爆破未加密的参数就又变了(与之前不同)

怀疑工具的作者可能并没有考虑到高并发的场景,所以我调低了burp默认的并发数量,这里的并发我改成了 1,可以发现明显改善了很多。
