1.26学习

发布于:2025-02-10 ⋅ 阅读:(35) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到