2022蓝帽杯初赛
网站取证
网站取证1
请从网站源码中找出木马文件,并提交木马连接的密码
此时场景是网站被不法分子上传了木马让我们找出木马文件,刚好和国护的面试题一样,我们直接掏出D盾开扫就行了
flag{lanmaobei666}
网站取证2
请提交数据库连接的明文密码
此时直接在源码里面找到解密函数
此时我们直接将该代码丢给chatgpt进行解释
所有此时我们知道了是AES模式下的CBC加密方式;此时的key和iv还有密文我们都有了直接进行解密即可
flag{KBLT123}
网站取证3
请提交数据库金额加密混淆使用的盐值
此时因为题目说是数据库,所以此时我们直接在sql文件中搜索money,此时发现大量与tab_channel_order_list的数据表
此时搜索key或者salt字段发现没有出现值,所以转头去源码处寻找;发现了有一个channel有关的php文件里面包含了key;此时我们对该段代码进行一个验证发现这个是一个简单的加密方法;此时将key带入后发现确实是flag
ps
我上面那个应该算是非预期解,此时网上的师傅们是将该网站部署之后对这个金额进行一个追踪,最后确认了就是这个key
师傅的文章链接: https://www.ctfer.vip/note/set/326
flag{jyzg123456}
手机取证
手机取证1
627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?
flag{360x360}
手机取证2
姜总的快递单号是多少?
flag{SF1142358694796}
计算机取证
计算机取证1
从内存镜像中获得taqi7的开机密码是多少
此时要求我们获得taqi7用户的开机密码,此时我们直接把这个丢尽KIT里面进行一把梭
flag{anxinqi}
计算机取证2
制作该内存镜像的进程Pid号是多少?
此时直接使用命令pslist列出进程表,然后看到比较陌的进程可以直接去百度查找是什么进程最后也是找到了一个MagnetRAMCaptu
百度之后发现是一个制作内存镜像的软件刚好和题意相符合
flag{2192}
计算机取证3
bitlokcer分区某office文件中存在的flag值为?
此时我们先使用Arsenal-Image-Mounter工具进行挂载E01镜像;此时发现有bitlocker进行保护
此时我们依旧选择使用KIT进行一把梭
key:368346-029557-428142-651420-492261-552431-515438-338239
此时进去这个磁盘后发现ppt和word文档都存在保护,但是这个磁盘又给我们提供了一个密码本
此时我们可以考虑进行一个爆破;使用PowerPoint Password Recovery对PPT进行爆破得到密码为password:287fuweiuhfiute
此时也是直接拿到了flag
flag{b27867b66866866686866883bb43536}
ps
因为我在使用KIT进行爆破时发现时间过于长,所以此时找到了另外一位师傅的做法
1 | ◆通过BitLocker加密的过程,我们可以知道在加密设置时会产生恢复密钥,通常大家会以“保存到文件”的方式存放恢复密钥(一般不会选择注册Microsoft账户,而打印又容易丢失,所以更多时候选择保存到文件),这种方式恢复密钥会以TXT文件的方式存放到存储介质中; |
所以此时我们直接使用010将bmp打开;然后搜索”恢复密钥:”即可出现密钥
bitlocker的解密:https://zhuanlan.zhihu.com/p/437950204
程序分析
程序分析1
本程序包名是?
此时直接使用apkeazytools一把梭得到包名
flag{exec.azj.kny.d.c}
程序分析2
本程序的入口是?
Android程序的入口就是Main Activity函数;还是使用apkeazytool一把梭
当然因为我们知道这个入口函数是Main Activity;所以可以对这个apk进行反编译
flag{minmtta.hemjcbm.ahibyws.MainActivity}
程序分析3
本程序的服务器地址的密文是?
1 | package minmtta.hemjcbm.ahibyws; |
此时将这个MainActivity函数丢尽chatgpt进行解析发现这个是一个它重写了一些继承自h类的方法,其中一个方法用于获取一个URL地址;所以此时可以猜测aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6即为服务器地址密文
flag{aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6}
程序分析4
本程序实现安全检测的类的名称是?
此时我们在对apk进行反编译之后直接全文搜索“安全”此时发现了一段文字
此时我们转到此段代码进行查看后发现,他会使用if (d.a.a.c.a.b() / 1048576 < 200)
进行检测空间是否足够;此时利用到了d.a.a.c.a.b()这个
函数
此时我们再次转到这个函数进行查看
所以此时的类为a
flag{a}