OUC::CTF

📅 2026/7/20 16:44:34
OUC::CTF
一、Misc1.签到题关注公众号即可得到flag2.base64点击链接学习了base64基础知识并用base64解密得到flagPythonimport base64 encoded ZmxhZ3syOGI5MjE3Mi00ZmRmLTQ1ZWItYjRhNy02MWVlNTRjNTZjMDV9 # 解码 decoded base64.b64decode(encoded).decode() print(f解码后的字符串: {decoded})运行结果如下 解码后的字符串: flag{28b92172-4fdf-45eb-b4a7-61ee54c56c05}3.BaseCrack赛博厨子Cyberchef是一个强大的在线工具可用于各种编码、解码和数据转换操作。要使用赛博厨子对字符串 ‘TEpXWFEyQzJHTjJHUVQyWExGM1ZTVjJHTkpNVkdNQlVMSktGS01LTUtSSkdXVEtVTk4yRTZWMjJOUk1YU01CVEpWVkZTTTJOR0pFVEdXVE5KWldVNFJDV0hFPT09PT09’ 进行解密或分析可按以下步骤操作打开赛博厨子的官方网站https://cyberchef.org/将待分析的字符串粘贴到页面左上角的“输入”框中。点击“Magic”按钮赛博厨子会自动执行添加的操作。4.ROT135.Rail Fence二、Web1.HTTPGETPOSTcurl -X POST http://43.142.45.204:32817/?get_paramctf_get -d post_paramctf_post2.Robots.txt第一步查看网页源代码在网页上按CtrlU或右键点击查看页面源代码寻找隐藏的线索。第二步检查robots.txt访问http://43.142.45.204:32817/robots.txt这是爬虫标准的线索隐藏位置robots.txt中发现了重要路径特别是/flag.php第三步访问flag.phpcurl http://43.142.45.204:32819/flag.php或者在浏览器中直接访问http://43.142.45.204:32819/flag.php第四步浏览器查看源代码在flag.php页面按CtrlU3.HTTP Header第一步我们知道需要设置一个特定的Cookie来通过身份验证从详细输出中可以看到重要信息服务器返回了302重定向重定向到chamber2.php第二步访问重定向的页面现在需要访问chamber2.php并带上cookiecurl -b identityadministrator http://43.142.45.204:32820/chamber2.php第三步现在需要设置X-Forwarded-For请求头来伪装内部IP地址curl -b identityadministrator -H X-Forwarded-For: 192.168.1.100 http://43.142.45.204:32820/chamber2.php详细模式查看curl -v -b identityadministrator -H X-Forwarded-For: 192.168.1.100 http://43.142.45.204:32820/chamber2.php或者使用跟随重定向自动跳转curl -L -b identityadministrator -H X-Forwarded-For: 192.168.1.100 http://43.142.45.204:32820/chamber2.php第四步需要设置User-Agent请求头包含InternalSecurityScannercurl -L -b identityadministrator -H X-Forwarded-For: 192.168.1.100 -A InternalSecurityScanner http://43.142.45.204:32820/第五步现在需要设置两个额外的HTTP头curl -v -b identityadministrator ^ -H X-Forwarded-For: 192.168.1.100 ^ -A InternalSecurityScanner ^ -H Referer: http://43.142.45.204:32820/chamber3.php ^ -H X-Secret-Key: CTP_2024_KEY ^ http://43.142.45.204:32820/curl -L -b identityadministrator -H X-Forwarded-For: 192.168.1.100 -A InternalSecurityScanner -H Referer: http://43.142.45.204:32820/chamber3.php -H X-Secret-Key: CTF_2024_KEY http://43.142.45.204:32820/4.ezSQL使用curl发送POST请求curl -X POST http://43.142.45.204:32822/ -d username OR 11 -- -d passwordtest三、Reverse1.IDA Pro4.xor这是一道很典型的“异或加密”入门逆向题思路其实很简单我帮你捋一下顺便直接把 flag 算出来。逻辑分析图1的伪代码if (strlen(a1) ! 42) return 0; for (i 0; i 0x29; i) // 0x2941也就是 i0~41共42次 { if ((a1[i] ^ 0x12) ! enc[i]) return 0; } return 1;意思是你输入的字符串每个字节异或 0x12必须等于 enc 数组里对应位置的字节。反过来推导输入flag就很简单flag[i] enc[i] ^ 0x12这是异或的性质a ^ b c等价于a c ^ b。所以完全不需要暴力破解直接把 enc 每个字节和 0x12 异或一遍就是答案。怎么找 enc图2图2在.data段public enc enc db t~sui* %*p$,27h,s?w*,27h,?$v#? w?%,27h,sq%vt## ,27h,o这是 IDA 显示字节数组的方式能显示成 ASCII 字符的就显示字符串遇到单引号这种特殊字符就单独用27h十六进制表示因为单引号本身要用来包裹字符串会冲突。所以要把它们按顺序拼起来才是完整的 42 字节数组t~sui* %*p$s?w*?$v#? w?%sq%vt## oenc bt~sui* %*p$ b\x27 bs?w* b\x27 b?$v#? w?% b\x27 bsq%vt## b\x27 bo flag bytes(b ^ 0x12 for b in enc) print(flag.decode())flag{8278b65a-4e85-46d1-92e9-75ac7df11225}