本文目录
[BJDCTF 2nd]EasyBaBa
下载图片后,很大的一张图片,里面必定有东西,foremost分离
得到压缩包。
解压后是一张jpg格式的图片,但是打不开,猜想应该可能会是文件头缺少,打开010Editor,看一下,发现有点不对劲,
好像是个avi文件,改后缀。打开是一个小视频,好像看过,钉钉来着,全程在叫baba哈。看到中间有几张带二维码的图片闪过去了。太快看不清,用放在PR里逐帧分离,用截图工具Snipaste截取二维码QQ截图也行,(注意截图时,不要截到其他部分,否则修复二维码时会出现解码失败的现象)。
放在扫描工具里修复二维码并扫码
全部扫出来,得到字符串,观察发现符合base16编码的特征。于是进行base16解码
这个答案好奇怪,栅栏也不是啊。难道是什么新的加密?看看比赛时给的wp,
呃呃呃,是这样吗??????
flag:BJD{imagin_love_Y1ng}
安恒月赛——6G还会远吗
题目链接:http://server.zhaoj.in:8888/1GTest.file
14天啊,是挺无语的,当时想抓包改什么参数来着,全都失败。结果看了wp就是直接将没下载完的文件,放在winhex或010Editor里看。
大写的服!
DASCTF{welcome_to_DAS_Ap1r1}
黄金六年
之前学长给我们看过这个,所以直接进PR里一帧一帧看了,在四本书上看到了二维码,手机扫不出来,当然不是全部,反正我的是扫不出来。
我用QR Research直接扫出来四个信息。
交flag发现不对,有点奇怪,然后才发现学长给我们看这个题,没让我们看完,还有接下来的步骤。
将视频拖进010Editor中滑到最后,发现了base64编码
进行解码,看到是rar压缩包,
然后大佬们的办法是写脚本,我不会写,只能另外找办法。我就想到将base64编码转换成16进制,然后再保存为rar文件,好像可行。试一下。
网站地址:base64转换成16进制
然后,复制十六进制的编码粘贴到HxD中进行保存。
保存后,打开看看,果然能打开,加密的,密码就是前面得到的那个字符串,解压得到flag
提交正确。
[安洵杯 2019]吹着贝斯扫二维码
解压发现一堆文件
而且压缩包还是加密的,看看那些文件,发现都有JPEG,可能是jpg图片,先改一个看看。
有点东西,总不能一个一个改吧?这么多,然后在百度的小角落里发现了一个工具——格式工厂(最喜欢工具了)
真快,看一下。
好家伙,拼图。得到36张图,可以拼一张6x6的大图。
将文件夹拖进kali。然后使用工具拼图。
在文件夹内打开终端
montage *jpg -tile 6x6 -geometry 134x130+0+0 out.jpg
然后得到一张混乱无序的图。
注意这里的像素:要和分裂的二维码残片的像素一致才能得出这样的二维码乱序图。如果像素不一样了,就得不到这样的图,当然后面的步骤也就无法进行下去。
而这张图的像素:打开一张二维码片段,然后看它的属性里面——详细信息
再使用gaps还原
gaps --image=out.jpg --generations=40 --population=36 --size=100
没还原出来,尴尬哈,,,,不知道怎么回事,我试了n次了,就是还原不出来。奇怪了。最后我实在是没办法了,只上手了。在PPT里拼的。md 累死,我拼了俩小时(泪流满面.gif)
扫描吧,终于可以扫了。
emmm,啥玩意儿。好像还有个flag.zip没看。
嗷嗷,还有编码。复制出来解密。
上面扫出来的好像是加密顺序,因为题目中的二维码已经扫过了,还有贝斯。那应该是base编码。
这个编码好像是base32 编码,那就是解密过程,上面的是加密顺序,将它逆转一下。开始解码。
这题真的给我解吐了。转过来转过去。
得到压缩包密码,ThisIsSecret!233
解压flag.zip得到
flag{Qr_Is_MeAn1nGfuL}
这一道题真是耗费我好长时间。
Crypto传统知识+古典密码
看着是年份,还是六十甲子年份。应该是要换成数字。于是百度对照表。把数字对照出来。而且背面还写了+甲子
再加上60。一甲子是六十
第一想法应该是ASCII码表。对照出来。
然后看着这一串字符,没了头绪。再看看题,没有提示了啊。然后发现一个重要的事,题目说传统密码加古典密码。我好像没用到古典密码啊。脑中快速过了一遍古典密码。这么短的字符串,应该会是凯撒密码,还有栅栏密码,其他的一下子没想太多。
八个字符,栅栏可以分两栏和四栏,试过之后是两栏的。
然后凯撒解密。
得到
至于是偏移5位,自己一个一个试出来的,就这个最靠谱。
[NPUCTF2020]这是什么觅????
这个比赛我也看了,当时就看这一道题能看出来点门道,当然我一道题都没做出来,没什么可丢人的。就把这道题复现一下。也是成长过程。
下载得到一个文件,刚开始没有思路啊,没有想太多,不知道用什么方法打开,就直接payload++打开看了一眼,然后发现了
然后,foremost分离文件,得到了压缩包。
这个我没想到有什么古典密码是这个的,然后看着右下角的纸条,这种有空隙的,是不是键盘密码之类的,再仔细想想不对,放弃,后来看着上面的日历,在这里面找,没啥头绪。再回头看那串字符串。发现第一个字母都是大些且F、W、S、S、T、S、W、S
有个规律就是他们英文单词星期的首字母。这个一想就靠谱,就抓住这一点来想。后面跟数字,再看日历,第一排画圈了。没错的,就是这样,字母后面跟两个数字的都是在一周中又重复出现的。所以第一个字母是他们的顺序。第二个字母才是出题人想给的信息。这样看出来就是3 1 12 5 14 4 1 18
,我不知道为什么把1算上了,不是已经划了吗??
不过不纠结这个,我到这里卡住了。所以后面的看的师傅们的博客知道的。然后发现是字母表的,我之前一直在猜ascii码,就这个没想到。所以一道题没做出来。最后flag{calendar}
robomunication
听得出来是摩斯密码,别说了,都是辛酸,这个哔哔哔波,纯手工。
.... . .-.. .-.. --- .-- .... .- - .. ... - .... . -.- . -.-- .. - .. ... -... --- --- .--. -... . . .--.
再把这个字符串看一下,最后是flag是BOOPBEEP
Unencode
什么提示都没有,,就一串编码,而且看着怎么也不想不起来什么密码是这样的,见识短浅了。
是UUencode编码
直接在线网站解就行了。
UUencode在线解码
flag{dsdasdsa99877LLLKK}
web题先从简单的来,不然太容易被搞乱心态。
变量1
代码审计:
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函数了解的不够,就又查了一遍。$$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
web5
f12发现了非常多的编码,查百度,发现是jother编码,而且控制台可解。直接复制所有编码粘贴到控制台,回车即可。flag大写。
头等舱
打开网页什么也没有,没有其他提示,回头看题目,“头”等舱。header。进行抓包尝试。成功找到flag
管理员系统
f12查看有无有用信息,找到一个base64编码(==),解码得到test123,应该是密码了吧。
所以尝试登陆:发现登录失败,而且IP禁止访问,联系本地管理员。
所以可能是XFF。可以改一下,本地管理员那就改成本地的127.0.0.1
可以抓包添加,我直接使用chrome扩展插件添加了,然后刷新网页,得到flag。