1.26学习
misc
buuctf-神秘龙卷风
下载附件后打开,果然是一个加密的压缩包,用工具对这个压缩包进行破解,根据题目的四位数字我们可以知道密码是四位数字,所以破解得到密码解压后看到的是一串密文,是Brainfuck密文,所以用在线工具解密即可Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
crypto
bugku-一段新闻
打开之后是一个文本,但是中间有巨大的空缺应该是隐藏文字,用在线工具先解密隐藏字符加密 - 一个工具箱 - 好用的在线工具都在这里!然后就得到了社会主义价值观的密文,解密即可
bugku-EN-气泡
根据题目,我们搜索一下气泡密码,然后发现随波逐流的字密1中含有bubble,所以我们用它解密,然后通过三次解密后得到了flag
buuctf-信息化时代的步伐
下载附件后打开是一堆数字,是电报,用在线工具解码电报码在线翻译(国际摩尔斯电码及中文电码) - 千千秀字
了解
电报出现于19世纪,是人类最早用电信号传送信息的方式,在19世纪和20世纪也是主要的通信方式之一。进入21世纪后,电报这种通信方式基本不再使用。
电报的工作原理:发报方将文字转换成特定的编码,然后以电信号把这些编码发送出去;收报方抄收这些编码,然后翻译成文字。双方都有一个相同的代码本,上面记载了文字和编码的对应关系。显然,使用私有的代码本,可避免无关收报方破译电报文本。
电报通常使用国际摩尔斯电码进行收发报。摩尔斯电码使用点(·)和划(-)两种符号的特定组合表示不同的字符,在用声音表示时,其中点(·)为短信号,一个时间单位,读作滴,划(-)为长信号,三个时间单位,读作嗒;两个信号间隔一个时间单位,字符间隔三个时间单位,单词间隔七个时间单位。
摩尔斯电码编码表:
国际摩尔斯电码(字母)
字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 A ·- B -··· C -·-· D -·· E · F ··-· G --· H ···· I ·· J ·--- K -·- L ·-·· M -- N -· O --- P ·--· Q --·- R ·-· S ··· T - U ··- V ···- W ·-- X -··- Y -·-- Z --··
国际摩尔斯电码(数字)
字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 1 ·---- 2 ··--- 3 ···-- 4 ····- 5 ····· 6 -···· 7 --··· 8 ---·· 9 ----· 0 -----
国际摩尔斯电码(标点)
字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 . ·-·-·- : ---··· , --··-- ; -·-·-· ? ··--·· = -···- ' ·----· / -··-· ! -·-·-- - -····- _ ··--·- " ·-··-· ( -·--· ) -·--·- $ ···-··- & ·-··· @ ·--·-· + ·-·-· 可见,摩尔斯电码只能用来传送字符数量少的语言,面对数量庞大的中文,则需要一次中间编码进行转换,这就是中文电码。通常是以1983年邮电部编写的《标准电码本(修订本)》为规范。中文电码表采用四位阿拉伯数字表示一个中文字符(汉字、字母和符号),从0001到9999顺序排列。汉字先按部首,后按笔画排列;字母和符号放到电码表的最后。发送中文电报时,先按照中文电码本将中文翻译为数字串,再以摩尔斯电码发送这组数字串。收报方先将电码翻译为数字串,再转译为中文即完成。
web
buuctf-[ACTF2020 新生赛]Include
开启环境后发现有个tips双击看看什么tip看到了这么一句话,再看看网址后面是一个传参的样子,再加上file,试试php伪协议,先尝试一下index.php
解码这段base64编码,得到了一串php代码
<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){
exit('hacker!');
}
if($file){
include($file);
}else{
echo '<a href="?file=flag.php">tips</a>';
}
?>
根据这里我们可以知道就是php协议,但是不允许 input,zip,phar,所以我们的filter正确的
又注意到flag.php所以我们将原本的index.php改为flag.php就得到了又一个base64编码得到了flag
re
nssctf-[HNCTF 2022 Week1]X0r
下载附件得到了一个运行程序,我们查壳,发现无壳,那就ida反编译看看,然后我们看到了代码大致意思就是:输入一个数据,为Str,然后首先看它的长度,只有长度为22时才会进行后续操作。然后再对Str的每一个字符(每一次循环针对的是第i位)进行了异或后再移位的操作,如果与arr的第i位相同,就是正确的
这里我们要双击arr,具体查看arr是什么这是16进制的值,且这些都是arr的值,所以我们写py脚本记得要在前面加上0x
那么我们写脚本
arr_list = [0x03FE, 0x03EB, 0x03EB, 0x03FB, 0x03E4, 0x03F6, 0x03D3, 0x03D0, 0x0388, 0x03CA, 0x03EF, 0x0389, 0x03CB, 0x03EF, 0x03CB, 0x0388, 0x03EF, 0x03D5, 0x03D9, 0x03CB, 0x03D1, 0x03CD,]
flag = ""
for i in range(len(arr_list)):
flag += chr((arr_list[i]-900)^0x34)
print(flag)
这个脚本就是将arr的数据先列表,然后我们给了一个空值的变量flag,然后将arr的数据都循环一遍,先移位后异或(与原代码的相反)得到的就是我们输入的Str