2020 10 全国工业互联网安全技术技能大赛江苏省选拔赛

上午

web

URL

页面输入存在url参数 ?url=,怀疑是SSRF,读取源码:

/index.php?url=file://localhost/ctf.cybersec/../../var/www/html/index.php&submit=SUBMIT
<?php
function curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
}

if(isset($_GET['submit'])){
        $url = $_GET['url'];
        if (preg_match('/ctf\.cybersec/i', $url)) {
                if (preg_match('/\@|\#|\?/i', $url)) {
                        die('not @#?');
                } else {
      $parts = parse_url($url);
      if (empty($parts['host']) || $parts['host'] != 'localhost') {
            exit('host must be localhost');
      } else {

                        curl($url);
      }
                }
        } else {
        die("The URL must contain the 'ctf.cybersec'");
        }
}
?>

源码里不存在flag和提示,经过尝试找到flag在/flag.txt:


upload

文件上传提示200OK,但访问又是404,解法是条件竞争,burp开两个intruder窗口,一个持续上传,一个持续访问预期文件名,线程调高即可。

上传生成马:

这题给了flag位置,在/root/flag,直接读是没有权限的,需要执行/etc/下的test才能读取flag,类似于大型竞赛的readflag程序,为了防止破坏flag。

这类readflag程序一般是通过SUID实现的,以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试


下午

Misc

签到

flag 就在图片里面


RE_bitsconvert

描述

与门,或门和非门是常见的门电路,现有一个电路,其中一部分有与或非三个门,有一串电流序列,以一定的顺序通过了这个电路。现获取到电流通过这三个门之后的状态,那么原电流的序列是什么? 提示:md5(flag) == 4c753d89d239bb17b8d754ff981c7772

程序运行后要求输入 0、1,在输入到第32次后会判断答案,那么可以得出揭露 01组成的32位数 md5 == 4c753d89d239bb17b8d754ff981c7772

用 hashcat 爆破

将 10011011101110000010111100001101 输入至程序得到 flag

flag{10011011-10111000-00101111-00001101}


被加密了的设备驱动

附件是一个加密的压缩包,爆破密码,是弱口令 05114568

解压出来是一个文本文件和一个加密的压缩包

ppp内容如下

比赛时没做出来,赛后询问朋友得知是 opcode,密码规则是 clearlove + 任意2位字符 + 3位纯数字

通过md5碰撞确认为 clearlove%?794

解压得到dll,用 strings 一下得到 flag

flag{signal_is_easy_more_challenge!}


异常的流量包

wireshark 打开流量包,过滤一下 s7comm 流量

光S7就足足17w个包,要么是跑脚本,要么是分析异常

按 info 排列, 在 setup communication 中最后一个包有异样

flag{is_not_real}


噪音

压缩包解压出来是个 mp3 文件

这一题需要使用 RX-SSTV 工具,这个 mp3 具有非常明显的特点,做过类似题目的都清楚

打开音频文件,点击 Receiving


ezRSA

原题

output

encryption

yafu 分 n

Sage 跑

得到 flag{weadfa9987_adwd23123_454f}

然后再进行达芬奇密码移位


second

pkey[1] = n

剩下的为enc

sage

[1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1]

flag{GO0D_J0b_of_TH1s_encrYption}