Misc

[BJDCTF 2nd]EasyBaBa

平时做题总结_二维码
下载图片后,很大的一张图片,里面必定有东西,foremost分离
得到压缩包。
解压后是一张jpg格式的图片,但是打不开,猜想应该可能会是文件头缺少,打开010Editor,看一下,发现有点不对劲,
平时做题总结_php_02
好像是个avi文件,改后缀。打开是一个小视频,好像看过,钉钉来着,全程在叫baba哈。看到中间有几张带二维码的图片闪过去了。太快看不清,用放在PR里逐帧分离,用截图工具Snipaste截取二维码QQ截图也行,(注意截图时,不要截到其他部分,否则修复二维码时会出现解码失败的现象)。
放在扫描工具里修复二维码并扫码
平时做题总结_字符串_03
全部扫出来,得到字符串,观察发现符合base16编码的特征。于是进行base16解码
平时做题总结_writeup_04
这个答案好奇怪,栅栏也不是啊。难道是什么新的加密?看看比赛时给的wp,
平时做题总结_writeup_05
呃呃呃,是这样吗??????
flag:BJD{imagin_love_Y1ng}

安恒月赛——6G还会远吗

题目链接:http://server.zhaoj.in:8888/1GTest.file
平时做题总结_字符串_06
14天啊,是挺无语的,当时想抓包改什么参数来着,全都失败。结果看了wp就是直接将没下载完的文件,放在winhex或010Editor里看。
平时做题总结_writeup_07
大写的服!

DASCTF{welcome_to_DAS_Ap1r1}

黄金六年

平时做题总结_writeup_08
之前学长给我们看过这个,所以直接进PR里一帧一帧看了,在四本书上看到了二维码,手机扫不出来,当然不是全部,反正我的是扫不出来。
我用QR Research直接扫出来四个信息。
平时做题总结_二维码_09
交flag发现不对,有点奇怪,然后才发现学长给我们看这个题,没让我们看完,还有接下来的步骤。
将视频拖进010Editor中滑到最后,发现了base64编码
平时做题总结_字符串_10
进行解码,看到是rar压缩包,
平时做题总结_字符串_11
然后大佬们的办法是写脚本,我不会写,只能另外找办法。我就想到将base64编码转换成16进制,然后再保存为rar文件,好像可行。试一下。
平时做题总结_php_12
网站地址:base64转换成16进制
然后,复制十六进制的编码粘贴到HxD中进行保存。
平时做题总结_字符串_13
保存后,打开看看,果然能打开,加密的,密码就是前面得到的那个字符串,解压得到flag
平时做题总结_CTF_14
提交正确。

[安洵杯 2019]吹着贝斯扫二维码

平时做题总结_字符串_15
解压发现一堆文件
平时做题总结_php_16
而且压缩包还是加密的,看看那些文件,发现都有JPEG,可能是jpg图片,先改一个看看。
平时做题总结_writeup_17
有点东西,总不能一个一个改吧?这么多,然后在百度的小角落里发现了一个工具——格式工厂(最喜欢工具了)
平时做题总结_php_18
真快,看一下。
平时做题总结_CTF_19
好家伙,拼图。得到36张图,可以拼一张6x6的大图。
将文件夹拖进kali。然后使用工具拼图。
在文件夹内打开终端

montage *jpg -tile 6x6 -geometry 134x130+0+0 out.jpg

然后得到一张混乱无序的图。
注意这里的像素:要和分裂的二维码残片的像素一致才能得出这样的二维码乱序图。如果像素不一样了,就得不到这样的图,当然后面的步骤也就无法进行下去。
而这张图的像素:打开一张二维码片段,然后看它的属性里面——详细信息
平时做题总结_writeup_20
平时做题总结_字符串_21
再使用gaps还原

gaps --image=out.jpg --generations=40 --population=36 --size=100

没还原出来,尴尬哈,,,,不知道怎么回事,我试了n次了,就是还原不出来。奇怪了。最后我实在是没办法了,只上手了。在PPT里拼的。md 累死,我拼了俩小时(泪流满面.gif)
平时做题总结_字符串_22
扫描吧,终于可以扫了。
平时做题总结_CTF_23
emmm,啥玩意儿。好像还有个flag.zip没看。
平时做题总结_writeup_24
嗷嗷,还有编码。复制出来解密。
上面扫出来的好像是加密顺序,因为题目中的二维码已经扫过了,还有贝斯。那应该是base编码。
这个编码好像是base32 编码,那就是解密过程,上面的是加密顺序,将它逆转一下。开始解码。
这题真的给我解吐了。转过来转过去。
得到压缩包密码,ThisIsSecret!233
解压flag.zip得到

flag{Qr_Is_MeAn1nGfuL}

这一道题真是耗费我好长时间。

Crypto

传统知识+古典密码

平时做题总结_php_25
看着是年份,还是六十甲子年份。应该是要换成数字。于是百度对照表。把数字对照出来。而且背面还写了+甲子再加上60。一甲子是六十
平时做题总结_writeup_26
第一想法应该是ASCII码表。对照出来。
平时做题总结_writeup_27
然后看着这一串字符,没了头绪。再看看题,没有提示了啊。然后发现一个重要的事,题目说传统密码加古典密码。我好像没用到古典密码啊。脑中快速过了一遍古典密码。这么短的字符串,应该会是凯撒密码,还有栅栏密码,其他的一下子没想太多。
八个字符,栅栏可以分两栏和四栏,试过之后是两栏的。
平时做题总结_字符串_28
然后凯撒解密。
得到
平时做题总结_CTF_29
至于是偏移5位,自己一个一个试出来的,就这个最靠谱。

[NPUCTF2020]这是什么觅????

这个比赛我也看了,当时就看这一道题能看出来点门道,当然我一道题都没做出来,没什么可丢人的。就把这道题复现一下。也是成长过程。
下载得到一个文件,刚开始没有思路啊,没有想太多,不知道用什么方法打开,就直接payload++打开看了一眼,然后发现了
平时做题总结_CTF_30
然后,foremost分离文件,得到了压缩包。
平时做题总结_字符串_31
这个我没想到有什么古典密码是这个的,然后看着右下角的纸条,这种有空隙的,是不是键盘密码之类的,再仔细想想不对,放弃,后来看着上面的日历,在这里面找,没啥头绪。再回头看那串字符串。发现第一个字母都是大些且F、W、S、S、T、S、W、S有个规律就是他们英文单词星期的首字母。这个一想就靠谱,就抓住这一点来想。后面跟数字,再看日历,第一排画圈了。没错的,就是这样,字母后面跟两个数字的都是在一周中又重复出现的。所以第一个字母是他们的顺序。第二个字母才是出题人想给的信息。这样看出来就是
3 1 12 5 14 4 1 18,我不知道为什么把1算上了,不是已经划了吗??
不过不纠结这个,我到这里卡住了。所以后面的看的师傅们的博客知道的。然后发现是字母表的,我之前一直在猜ascii码,就这个没想到。所以一道题没做出来。最后flag{calendar}

robomunication

平时做题总结_CTF_32
听得出来是摩斯密码,别说了,都是辛酸,这个哔哔哔波,纯手工。

.... . .-.. .-.. --- .-- .... .- - .. ... - .... . -.- . -.-- .. - .. ... -... --- --- .--. -... . . .--.

平时做题总结_字符串_33
再把这个字符串看一下,最后是flag是BOOPBEEP

Unencode

平时做题总结_字符串_34
什么提示都没有,,就一串编码,而且看着怎么也不想不起来什么密码是这样的,见识短浅了。
是UUencode编码
直接在线网站解就行了。
UUencode在线解码
flag{dsdasdsa99877LLLKK}

Web

web题先从简单的来,不然太容易被搞乱心态。

变量1

平时做题总结_字符串_35
代码审计:

flag In the variable ! <?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>

首先注意到的是正则表达式,关于正则表达式的学习,在学习PHP时了解过了,这个是要匹配正确的字符串。
\w 匹配任意一个数字或字母或下划线
如果不匹配则直接die,匹配的话就输出一个可变变量,重点就在可变变量这里。我刚开始进行尝试,构造?args=_lala_结果输出了NULL,好像与eval函数有关,发现对eval函数了解的不够,就又查了一遍。
平时做题总结_writeup_36
$$args代表一个变量,所以这里传一个全局变量给它,全局变量有九种,可以挨个试,九大全局变量在百度直接搜索就可以搜到。

1|$_POST       [用于接收post提交的数据]
2|$_GET        [用于获取url地址栏的参数数据]
3|$_FILES      [用于文件就收的处理img 最常见]
4|$_COOKIE     [用于获取与setCookie()中的name 值]
5|$_SESSION    [用于存储session的值或获取session中的值]
6|$_REQUEST    [具有get,post的功能,但比较慢]
7|SERVER       [是预定义服务器变量的一种,所有SERVER[是预定义服务器变量的一种,所有_SERVER [是预定义服务器变量的一种,所有_SERVER开头的都
8|$GLOBALS     [一个包含了全部变量的全局组合数组]
9|$_ENV        [是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,我们可以在PHP 程序的任何地方直接访问它]

然后,用到了GLOBALS就得到了flag
平时做题总结_writeup_37

web5

f12发现了非常多的编码,查百度,发现是jother编码,而且控制台可解。直接复制所有编码粘贴到控制台,回车即可。flag大写。

头等舱

打开网页什么也没有,没有其他提示,回头看题目,“头”等舱。header。进行抓包尝试。成功找到flag
平时做题总结_CTF_38

管理员系统

f12查看有无有用信息,找到一个base64编码(==),解码得到test123,应该是密码了吧。
所以尝试登陆:发现登录失败,而且IP禁止访问,联系本地管理员。
所以可能是XFF。可以改一下,本地管理员那就改成本地的127.0.0.1
可以抓包添加,我直接使用chrome扩展插件添加了,然后刷新网页,得到flag。

平时做题总结_php_39