L3HCTF 2021 WriteUp
比赛感受:笑死,根本不会做 借用比赛群里发的一个表情包,Golang逆向属实给整麻了属于是 不过题目质量还可以,就做出来两个半题目,剩下的都是赛后复现 Web EasyPHP 从拿到Flag的内容来看,这道题貌似是要考察一个CVE:CVE-2021-42574,但其实这道题从很平常的代码逻辑角度去看也能做出来 打开网页直接有源码,按照代码高亮的一些规律很容易看出猫腻,如下图: 这里的猫腻在于普通的注释应该都是黄色的才对,而这里+!!直接被高亮成了运算符的绿色,L3HCTF也是呈现了不同的颜色,所以这里肯定有问题 把代码复制到VScode里面一眼就能看出来,存在不可见的Unicode控制字符: 所以这样去看,就会发现和网页中显示的代码逻辑不太一样了,if判断的条件变成了下面这样子(避免显示问题,控制字符用“字符x”代替): 1 2 3 4 5 if ( "admin" == $_GET[username] & 字符1 + !! 字符2 & "字符1CTF字符2l3hctf" == $_GET[字符1L3H字符2password] ) 这里的&变成单个出现,也就是按位与。所以需要做到三个条件均为1,最终才是1。第一个和第三个条件是由我们控制的,很简单;第二个条件尝试后发现是恒等于1的,所以只需要将Unicode控制字符做一下URLEncode再带入进去提交即可。URL-encode Unicode - Online Unicode Tools 最终Payload:username=admin&%e2%80%ae%e2%81%a6L3H%e2%81%a9%e2%81%a6password=%e2%80%ae%e2%81%a6CTF%e2%81%a9%e2%81%a6l3hctf Flag: flag{Y0U_F0UND_CVE-2021-42574!} 参考链接:Trojan Source Attacks,是和Flag一起出的,还有相关的研究论文可以参考 Misc a-sol We captured traffic in the IDC management network. Attachment 这题是一个流量分析题,是一个叫做IPMI的管理接口相关,好像是一套用来远程管理服务器的协议,文档可以在Intel官网找到:IPMI Specification, V2.0, Rev. 1.1: Document (intel.com)。用Wireshark查看协议细节,发现大部分协议包都是加密的,所以需要通过分析握手包来获取到解密的方法。 如上图,握手包一共有6个,分别是RMCP+ Open Session Request、RMCP+ Open Session Response以及4个RAKP Message,对应到文档中的第13.17-13.24节 ...