山河CTF(部分write up)

MISC

[WEEK1]签到题

下载题目并打开:

bcfa30667245bb0abbd3769f90175c31.png

base128编码:

Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5

因为是base128编码,所以通过两次base64解码,即可得出flag

32ce760c4715b0fe9857823aee4a03dc.png

爆出flag:

flag{this_is_flag}

总结:

这道签到题主要考察了对base64编码的基础了解

[WEEK1]Steganography

下载题目并打开:

f5a19033ce3d3803c6646eefc6968464.png

有三个文件,两个图片文件和一个压缩包文件

看到了flag压缩包,打开看一下

452832d8ee710d4bc7084e222f0104e5.png

本文件存在,但是需要密码

那么密码信息可能在上面那两个图片文件中,直接放入到010浅浅分析一波

dc51bf7a695676b9822e6bb1d2320c80.png 

两个图片竟然一模一样,有点意思

在careful.jpg图片16进制字符串中发现了base64编码格式(==或=就是base64编码的重要特征)

c26ce6fa373139d56e87372fd586ee0a.png

MTJlcmNzLi4uLi45MDlqaw==

放到Kali里面浅浅解码一波

8778d3a04642404e0bb8595a529f7243.png

得到如下字符串

12ercs.....909jk

想到flag.txt需要用密码打开,猜测这个就是密码,但是呢,还有一个图片没有用上,所以这5个点显然不是密码。

把careful1.jpg放入到010分析一波

479fd7699ecf05e909c55a7b89bed992.png

在16进制字符串中并没有发现什么有用的东西,只是一堆乱码,那么下一步该如何进行呢?

尝试查看一下careful1.jpg的图片属性,看看是否能有所突破

查看图片属性

f94eab5951e1964a761a1df5fc5a499e.png

出题人还是非常善良的,可以看到出题人在图片备注中给我们留了信息,刚好是5个字符对应了5个点

xqwed

12ercs.....909jk

密码:

12ercsxqwed909jk

打开flag.txt

7670da01e2252d67fff243a12f99d93f.png

爆出flag:

flag{4d72e4f3-4d4f-4969-bc8c-a2f6f7a4292c}

[WEEK1]可爱的派蒙捏

下载题目文件,是一个压缩包,里面只有一张图片

0e024f1c1fa1fdf2b502dac4bbb3e908.png

放到010里面分析一波

a3e74328c94df65a8bd370261a8c118d.png

图片隐写,发现存在两个文件txt1.txt和txt2.txt

放到Kali binwalk把这两个文本文件提取出来

7fe06066be7dac5e1661db7c9f1dfe09.png

提取成功,看看这两个文件里面是什么内容

f1ae879d8fdc448f5c56323dde7b3c98.png

80f8b14cfec32d3a2ccb70f5385e5d32.png

刚开始我以为这是什么编码,看来是我想复杂了,经过这两个文件频繁切换,看到了有个别字符不同,大部分字符是相同的,想到了将不同字符提取出来,就是flag

拖入到物理机

1a1bc7386c478593805b3b846e002e4f.png

复制到pycharm项目中

355f60bfa3f7d21c1d99c93493823973.png

编写python脚本

# 打开第一个文本文件并读取内容

with open('txt1.txt', 'r', encoding='utf-8') as file1:

    text1 = file1.read()
# 打开第二个文本文件并读取内容
with open('txt2.txt', 'r', encoding='utf-8') as file2:
    text2 = file2.read()
# 找出text2中与text1不同的字符
differences = []
for i, (char1, char2) in enumerate(zip(text1, text2)):
    if char1 != char2:
        differences.append(char2)
# 打印text2中与text1不同的字符
print("text2中与text1不同的字符:", ''.join(differences))

在代码中我做了注释,方便大家理解

运行python脚本

26305b9e72713b7ee77f55c0c5da19e6.png

爆出flag:

flag{4ebf327905288fca947a}

[WEEK1]message

下载题目并打开:

1e4bc620d2cfeeaf932aff379b8d2563.png

0001000D91683106019196F40008C26211002072B975915730671B54114F60000A000A592982B15C065265843D8A938A00000A000A5E8A9AA453D883525730000A000A91527CBE518D6E1751656CEA75D5000A000A6C899ED852305BF94E0D8D77000A000A8FD94E0053CC624B535191195230002062B14F4F4F6000530048004300540046007B00620061003900370038003400300035002D0062003100630038002D0038003400370063002D0038006500360039002D006600360032003100370037006500340063003000380037007D

有ABCDEF猜测是16进制编码,16进制转字符串一把梭

9433057587bf2d0a42b763e6482cdf29.png

得出flag:

SHCTF{ba978405-b1c8-847c-8e69-f62177e4c087}

[WEEK1] 真的签到

1bb84dfe046f701d330196228a16b5a9.png

不再多说,跟着操作走即可

得出flag:

flag{Welc0me_tO_SHCTF2023}

[WEEK2]远在天边近在眼前

下载题目并打开:

3a1535a415cfd3939c9c25aa283f93f3.png

很明显flag就是所有文件的路径地址

考虑到路径地址复制下来有的符号会丢失,放入010打开

fccc2aa94b2d2bff953cfd25390388ce.png

}/8/2/1/5/a/3/8/4/8/2/5/0/_/?/T/H/G/l/r/I/4/_/Y/s/A/3/_/y/l/L/A/e/r/_/s/i/_/S/i/H/t/{/g/a/l/f

反的flag,还这么长,不想手动排序了,写个python脚本梭一把

97a4a750eb39f22554e37364d797975a.png

ctf='}/8/2/1/5/a/3/8/4/8/2/5/0/_/?/T/H/G/l/r/I/4/_/Y/s/A/3/_/y/l/L/A/e/r/_/s/i/_/S/i/H/t/{/g/a/l/f'

flag=ctf[::-1] 

flag=flag.replace('/','')#删除字符'/'

print(flag)

得出flag:

flag{tHiS_is_reALly_3AsY_4IrlGHT?_0528483a5128}

[FINAL]问卷

85dd9300126c7ce1de81d0beabce9ed4.png

跟着操作走即可

7198a611fd2fe02ac6113851e4073a0d.png

得出flag:

flag{SHCTF_Round2_will_do_even_better!}

Web

[WEEK1]babyRCE

刚开始不要把题想的那么难,看下环境代码

<?php

$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__); 

}

一、PHP代码审计

1.可以明显看到给了一个GET方式传参,这个参数是rce

2.if判断语句,isset函数用来判断rce这个参数是否存在并且是否不为空,如果条件达成,则true

3.preg_match正则表达式,用来过滤一些命令,可以看到过滤了cat、more、less、head、tac、tail、nl、od、vi、vim、sort、flag等命令并且过滤了整数和空格以及一些常用符号

4.system外部执行命令,将参数rce的值作为命令执行,从这里可以看出这道题降低了难度,因为我们不再需要外部执行命令了,所以直接给参数rce传值即可

5.else与if语句联用,反之则输出对应的字符串

6.同5,highlight_file(__FILE__)函数用来高亮显示文件内容,就是把文件内容或者代码高亮显示到网页当中

二、解题思路

1.查看目录文件,幸运的是发现ls和/没有被过滤

2.绕正则,看它有没有漏掉的过滤命令,发现没有过滤uniq命令,uniq命令可以查看文件内容

3.绕正则,查看文件命令需要用到空格,结果发现空格被过滤,可以使用${IFS}代替空格

4.绕正则,flag被过滤,可以通过f???进行绕过,可以理解为列出包含f的四个字符文件

三、开始解题

1.使用ls命令查看目录文件

?rce=ls

回显结果

d7a683606ea8ec5d79001d6fa0211b51.png

flag.php index.php

2.发现有flag.php文件的存在,尝试使用构造payload

?rce=uniq${IFS}f???.php

回显结果

空白内容,F12试试

4a6d724020a9b517664856cac2b96812.png

<?php

$flag = getenv('GZCTF_FLAG'); 

if($flag=="not_flag" or $flag==""){

$flag="dzctf{test_flag}";

}

getenv函数用来获取环境变量,flag的值等于这个环境变量的值

如果说flag是空的,则flag是dzctf{test_flag},显然这是不可能的

就是说这个目录下没有flag

那咱们去根目录下试试?

3.继续构造payload

?rce=uniq${IFS}/f???.php

发现网页内容为空,F12内容也是空

除了根目录下还有那里有?,猜测flag不是PHP文件,而是文本文件

4.继续构造payload

?rce=uniq${IFS}/f???

回显flag

f726cfe934dc1c99bada7edb1c15c9b8.png

得出flag:

flag{e85932a6-12df-4991-981c-adaf56337196}

[WEEK1]ez_serialize

题目环境:

f629bff8ca94cd0eb154de83e9d80d32.png

运行结果:

O:1:"C":2:{s:3:"var";O:1:"B":1:{s:1:"q";r:1;}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";}}}

上传exp:

7db9aafaf16caaf2a11cb144d90d8b85.pngPD9waHANCiRmbGFnID0gImZsYWd7NDQxZTY5NzEtMjU3NC00ZWYzLTg5YWYtYWQwNDYwMzA2NmUwfSI7DQo=

base64解码:

d2a2b6f3fcfa135a403fa75514c387b6.png

得出flag:

flag{441e6971-2574-4ef3-89af-ad04603066e0}

[WEEK1]登录就给flag

题目环境:

d9f2d6afef250994d80e67c6e2672853.png

burpsuite抓包

5bcd66299bcb67e23493f6bdd17ebbde.png

初始账号:admin

初始密码:1

HTTP history

17d0227a7408ea5dcf8d32f5bd650e91.png

Send to Intruder

f09fb7c6af0552940d15e52432429733.png

Clear

选中密码1,Add

a31157a6bc62003df6261923692e9aee.png

Payloads

7ef4d121ba535e61a8c51ecf225bd710.png

Load添加字典

a67b1bcce3bb8b52fa8aba8f3bc01437.png

打开字典

bd928c977c99c55ab516b0ea928807b8.png

Start attack开始爆破

5e3a03334df7026fb3f55e8deab50b84.png

得到密码

password

账户:admin

密码:password

登录:

5368d84fa1064c265412aec6a62b12ca.png

login登录:

b4171db75d849bb976db9bc36f944ec7.png

得到flag:

flag{d2974de6-f71e-48f9-9659-dc453a23009a}

[WEEK1]飞机大战

题目环境:

d9b4f63f6050c96896ae9723e9b54a1c.png

玩了一把,通过才给flag,所以说想玩通过是不可能的,只能另辟蹊径

F12查看网页源代码

5b91c00789dbfa45e97bb575bdcbb840.png

HTML三大件

HTML+CSS+JavaScript

CSS静态网页样式

JavaScript动态功能

所以说更改游戏分数必须看这个JS文件

be143af62de45f8f9ccc4ce9290ad47c.png

没有看到可控游戏参数,倒是看到了一串\u开头的类似编码的东西

有密码学基础的可以看出这是Unicode编码格式

\u005a\u006d\u0078\u0068\u005a\u0033\u0074\u0068\u0059\u0057\u0051\u0033\u005a\u0044\u0041\u0030\u005a\u0043\u0030\u0030\u004e\u0047\u0049\u0030\u004c\u0054\u0051\u0032\u004f\u0054\u0059\u0074\u0059\u006a\u004e\u006c\u004e\u0053\u0030\u007a\u004d\u007a\u0052\u006b\u004e\u006a\u0064\u0068\u004e\u007a\u004d\u0033\u004e\u0047\u004e\u0039\u000a

Unicode解码一把梭

58e2a8446b833ff58a7419646f3127ca.png

base64

ZmxhZ3thYWQ3ZDA0ZC00NGI0LTQ2OTYtYjNlNS0zMzRkNjdhNzM3NGN9

base64解码一把梭

39479e5dc1589e5e89899f0fc1c2bbc9.png

得到flag:

flag{aad7d04d-44b4-4696-b3e5-334d67a7374c}

[WEEK2]no_wake_up

题目环境:

9d59da54fd4e6fe006c950c38ff972f7.png

运行结果:

O:4:"flag":2:{s:8:"username";s:5:"admin";s:4:"code";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}

上传payload

52b41db49b79137fa49d7e48453079e1.png

base64编码

PD9waHANCiRmbGFnID0gImZsYWd7MTE5NmY2NzQtZjkwMi00YWEzLWI5M2MtNTUyYTgxNTUzMjlkfSI7

base64解码

f8db5004e0bcb18b5546f3ae1a9e9e17.png

得出flag:

flag{1196f674-f902-4aa3-b93c-552a8155329d}

Crypto

[WEEK1]立正

下载题目并打开

5266b15338a04c51462d29b4d19d967c.png

wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw ~xrb wd nrrT Y:

一把梭:

f11cceccd7b6b72c967c8374145868d3.png

得到flag:

flag{Y0U_MU57_5t4nd_uP_r1gHt_n0W}

[WEEK1]Crypto_Checkin

下载题目并打开

2fe22d5e498313ee5ed630fbffc3ad40.png

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#>

base85(b)解码:

R1kzRE1RWldHRTNET04yQ0dVMkRNT0JUR0UzVEdOS0dHTVlUT01aVklZMkRFTVpVRzRaVEdNWlZJWVpUR05TRkdZWlRHTUJXR1FaVEdOMkU=

Base16-32-64-91混合多重解码:

base64

R1kzRE1RWldHRTNET04yQ0dVMkRNT0JUR0UzVEdOS0dHTVlUT01aVklZMkRFTVpVRzRaVEdNWlZJWVpUR05TRkdZWlRHTUJXR1FaVEdOMkU=

base32

GY3DMQZWGE3DON2CGU2DMOBTGE3TGNKGGMYTOMZVIY2DEMZUG4ZTGMZVIYZTGNSFGYZTGMBWGQZTGN2E

base16

666C61677B546831735F31735F423473335F336E633064337D

三种base混合解码

得出flag:

flag{Th1s_1s_B4s3_3nc0d3}

[WEEK1]残缺的md5

下载题目并打开:

a521ceb0d30c905f112060656eed546a.png

使用python写脚本:(脚本此处省略)

运行结果:

b6dc34346d8dfd37430666c01ccf13e2.png

写个python脚本转大写

flag='f0af1443b1f463eafff7aebb8b2ac4e6' 

print(flag.upper())

运行结果:

624025349def31a9fcff1453dd471012.png

得到flag:

flag{F0AF1443B1F463EAFFF7AEBB8B2AC4E6}

[WEEK1]凯撒大帝

下载题目并打开:

e8db673b8fe6bff5d9f86402b0531c3c.png

凯撒移位

f66ad14f66e70718583ec32a27ded494.png

得到flag:

flag{chutihaonan}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux MeterSphere测试平台远程访问你不会?来试试这篇文章

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网…

[C++]命名空间等——喵喵要吃C嘎嘎

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

目标检测 YOLOv5 预训练模型下载方法

目标检测 YOLOv5 预训练模型下载方法 flyfish https://github.com/ultralytics/yolov5 https://github.com/ultralytics/yolov5/releases 可以选择自己需要的版本和不同任务类型的模型 后缀名是pt

MongoDB的安装

MongoDB的安装 1、Windows下MongoDB的安装及配置 1.1 下载Mongodb安装包 下载地址&#xff1a; https://www.mongodb.com/try/download http://www.mongodb.org/dl/win32 MongoDB Windows系统64位下载地址&#xff1a;http://www.mongodb.org/dl/win32/x86_64 MongoDB W…

python采集电商jd app商品详情数据(2023-10-30)

一、技术要点&#xff1a; 1、cookie可以从手机app端用charles抓包获取&#xff1b; 2、无需安装nodejs&#xff0c;纯python源码&#xff1b; 3、商品详情接口为&#xff1a;functionId "wareBusiness"&#xff1b; 4、clientVersion "10.1.4"同…

java阵道之适配器大阵

开个玩笑&#xff0c;这里是一篇适配器模式讲解 定义&#xff1a; 适配器模式将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;目的是消除由于接口不匹配所造成的类的兼容性问题。 主要分为三类&#xff1a;类的适配器模式、对象的适配器模式、接口的适配器模式。…

【原创】java+swing+mysql志愿者管理系统设计与实现

摘要&#xff1a; 志愿者管理系统是一个用于管理志愿者以及活动报名的系统&#xff0c;提高志愿者管理的效率&#xff0c;同时为志愿者提供更好的服务和体验。本文主要介绍如何使用javaswingmysql去实现一个志愿者管理系统。 功能分析&#xff1a; 系统主要提供给管理员和志…

洞察运营机会的数据分析利器

这套分析方法包括5个分析工具&#xff1a; 用“描述性统计”来快速了解数据的整体特点。用“变化分析”来寻找数据的问题和突破口。用“指标体系”来深度洞察变化背后的原因。用“相关性分析”来精确判断原因的影响程度。用“趋势预测”来科学预测未来数据的走势&#xff0c;

少儿编程 2023年9月中国电子学会图形化编程等级考试Scratch编程四级真题解析(选择题)

2023年9月scratch编程等级考试四级真题 选择题(共25题,每题2分,共50分) 1、角色为一个紫色圆圈,运行程序后,舞台上的图案是 A、 B、 C、 D、 答案:A

阿里云推出通义千问App,提供全方位的协助

&#x1f989; AI新闻 &#x1f680; 阿里云推出通义千问App&#xff0c;提供全方位的协助 摘要&#xff1a;阿里云旗下大模型通义千问App登陆各大安卓应用市场&#xff0c;具有超大规模预训练模型&#xff0c;可在创意文案、办公助理、学习助手、趣味生活等方面协助用户。功…

Redis测试新手入门教程

在测试过程中&#xff0c;我们或多或少会接触到Redis&#xff0c;今天就把在小破站看到的三丰老师课程&#xff0c;把笔记整理了下&#xff0c;用来备忘&#xff0c;也希望能给大家带来亿点点收获。 主要分为两个部分&#xff1a; 一、缓存技术在后端架构中是如何应用的&#…

10.31一些代码分析,香浓展开,移位器(桶形多位),二进制转格雷码

always的block之间&#xff0c;采用并行执行 always之内&#xff0c;采用非阻塞赋值&#xff0c;为顺序执行 一些代码分析 这个把使能信号和W信号组合在一起&#xff0c;进行case语句&#xff0c;即只有合并信号最高位为1时&#xff0c;才进行操作 always后面要写&#xff0…

非科班出身的野生Android也可以跳到大厂

野生Android从业者&#xff0c;非科班出身&#xff0c;在小公司打杂2年后&#xff0c;"意外"地拿到了大厂的offer。 高中毕业后&#xff0c;我选择了一条不太寻常的路&#xff0c;&#xff08;花大几万&#xff09;进入编程培训班&#xff0c;后来又自修课程&#xf…

信创强国 | 安全狗荣获信创工委会技术活动单位证书

近日&#xff0c;安全狗荣获中国电子工业标准化技术协会信息技术应用创新工作委员会&#xff08;以下简称“信创工委会”&#xff09;颁发的信息技术应用创新工作委员会技术活动单位证书。 作为国内云原生安全领导厂商&#xff0c;安全狗在信息技术应用创新方面有多年的技术积累…

超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能脚本error报错…

OPENCV 闭运算实验示例代码morphologyEx()函数

void CrelaxMyFriendDlg::OnBnClickedOk() {hdc this->GetDC()->GetSafeHdc();// TODO: 在此添加控件通知处理程序代码string imAddr "c:/Users/actorsun/Pictures/";string imAddr1 imAddr"rice.png";Mat relax, positive;relax imread(imAddr1…

【Redis】高并发分布式结构服务器

文章目录 服务端高并发分布式结构名词基本概念评价指标1.单机架构缺点 2.应用数据分离架构应用服务集群架构读写分离/主从分离架构引入缓存-冷热分离架构分库分表&#xff08;垂直分库&#xff09;业务拆分⸺微服务 总结 服务端高并发分布式结构 名词基本概念 应⽤&#xff0…

030.Python面向对象_类补充_只读属性

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

MATLAB中perceptron函数用法

目录 语法 说明 示例 使用感知器求解简单分类问题 perceptron函数的功能是简单的单层二类分类器。 语法 perceptron(hardlimitTF,perceptronLF) 说明 注意 Deep Learning Toolbox™ 支持早期形式的感知器。为了获得更好的结果&#xff0c;您应改用 patternnet&#xff0…

【Linux】-进程控制(深度理解写时拷贝、exit函数、return的含义以及makefile编译多个程序)-进程创建、进程终止、进程等待、进程程序替换

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …