文章目录

  • Misc
    • 1、签到题
    • 2、加密的压缩包
    • 3、内存取证
  • Revers
    • 1、checkin
    • 2、babyascii
  • crypto
    • 1、bbcrypto
    • 2、bbaes
  • Pwn
    • 1、签到题
    • 2 、 babyshell
    • 3 、 BabyStackOverflow
    • 4、easystack_level0
  • Web
    • 1、 babyphp
    • 2、 nizhuansiwei
  • 总结

Misc

1、签到题

Ctrl+c Ctrl+v 真·签到

2、加密的压缩包

下载附件解压里面是一个 py 和一个加密的压缩包一开始手抖双击了两下这个 e.py

直接弹出了一堆 data.txt 里面都是两个字母或者数字,感觉可能是 base 码,先不管。

打开内容 可以看到:

读了一遍程序可以看出,刚刚运行了一下产生的文件就是这个 flag 经过编码以后,被切块成两个字母一组,放到不同的文件里储存起来了。
点开压缩包看看:

也是一堆文本文件,从而得知,这些文件也是用那种方法得出来的,只要得到里面的内容,解码一下就可以得到 flag。

一开始考虑伪加密解密这个压缩文件,但是拖进 winhex 里观察发现,均为真加密。

作罢。

观察发现,里面的文本是很小的,只有 2 字节,而且在旁边可以看到 CRC32,可以考虑 CRC32 碰撞来绕过密码。
于是写了一个拙劣的脚本:

连起来就是喜闻乐见的 base64 了解 码 得 到 : xgctf{crc32_09ec43d30f}

3、内存取证

下载文件下来是一个.raw
其实本来以为是图片隐写什么的,但是因为题目都说是内存取证了,那就直接扔到 Linux
虚拟机里用终端调用 volatility 查看了
运行:volatility -f imageCopies.raw – profile=Win7SP1x64 cmdscan
又是喜闻乐见的 base64 了
解码得到:xgctlVoRatilitz1s_so_ea4R}

Revers

1、checkin

逆向嘛,拖进 IDA 就完事了,再找个主函数,再按下 F5 看伪代码
(F5 大法好啊)

看到有那么长一串变量。都是数字结尾,估计是没跑了。

选中数字按下 R 转 char。果然。

得到:xgctf{Rever5e_1s_s0_Ea5y!}

2、babyascii

和第一题一样,先拖 IDA+F5,看伪代码

读一遍,发现是用户输入字符串,和他自己的比较,一样就 ok。那么可想而知,flag 就在这个 s2 中。

追踪过去是这玩意儿。有点乱。。。那一定是经过了加密的。回去看代码,注意到刚刚有点奇怪的一个地方

对字符加减数字,这是在学 C 语言时候常见的操作,也就是说,正是这个奇怪的循环改变用户输入的字符串,使得和密文匹配。
逆向思维一下,编写脚本。
(既然是 C 的小知识,那就用 C 写吧!)

出现了一点小问题 hhh,少了个大括号,不过无所谓了。已经有 flag 了直接提交他不香吗?

crypto

1、bbcrypto

题目提示的意思其实已经告诉我们了就是凯撒位移,只是不是普通的凯撒的位移。

打开文件可以看到,又是一个加密的过程以代码的形式体现。

可以看到最后一行的注释,显然就是加密后的 flag,遇到{}和_不加密;
本来感觉正规方法应该是可以读程序,写出反加密的代码,运行一下,得出结果。
但是想偷懒耍,就先观察了一下规律,既然是凯撒位移,那就试试看观察 xgctf 与 huj6y 的位移,题干信息一定是有用的,既然说了不是那么简单的位移,直接考虑用 table 中的表, 不难发现,x 和 h,g 和 u 都是向左位移了 11 位,不多 bb,直接写个简单的位移直接过。

2、bbaes

下载一下两个文件

在加上.txt 后打开。乍一看好像是 base64
头铁试了一下发现不太行。。。再康康另一个 py 文件。

out 文件是输出的密文没毛病
再继续看上去:是用了 AES 加密,key 也给了,key = ‘xgctf{not_flag~}’

Mode 是 ECB 字符集是 utf-8
所以只要看完程序,就可以知道怎么去解了。解得:
xgctf{WOW_Y0u_s0lvE_The_bBa1s}

Pwn

1、签到题

nc 进去跟着提示做就行

2 、 babyshell

nc 进去以后可以看到,已经帮你登陆了 sh,

输入 ls 命令看一下有哪些文件

看到一个 flag,直接 cat
但是是一个假的 flag
根据提示,应该是在其他文件夹里,一个个 cd 会 cd 的想爆炸。于是直接 find 所有 flag
的文件。

cd 工程量一下子就少了好多。进去第一个就是了。

3 、 BabyStackOverflow

nc 进去后看到的是一个登录系统

根据提示,当用户名和密码都是 admin 的时候就可以有 flag 了。那就先试试 admin。
结果直接说检测到黑客入侵。。。
才注意到上面一句话,第二次尝试输入较长的数据。
(为了可以辨别啥时候溢出,其实应该拖进 IDA 看一下的。但我懒得在两台电脑上搞来搞去,就偷懒就直接输数列 1234……一直下去。发现输到 21 的 2 时候就开始溢出了) 发现溢出的值刚好存到用户名里。
接下来只要输入密码,也是 admin 就可以了。
(理论上应该用脚本,因为在前几次试输入的时候超时登出了。但只要我手速够快,计时器就赶不上我 XD)

4、easystack_level0

先checksec 一下,看一下保护机制开启了多少。开启了RELRO 和NX,不能用shellcode,问题不大。

拖进 IDA

三步走:1、主函数;2、F5 看伪代码 3、找返回
可以看到有 system 函数,主函数里有个 vulnerable_function()调用,双击进入;

可以看到有个栈溢出的漏洞
那距离拿到 shell 还差一个/bin/sh 传统艺能看文本 shift+F12
果然有。
直接写脚本拿到 shell ,找下 flag。


Web

1、 babyphp

登录进去是这样的,talk is cheap ,show me the code,直接右键看源代码。

可以看到上面有个 action=“challenge.php”,提示:php 是最伟大的语言。应该就是个代码审计题了。
不出所料,下面第一处 if ($_GET[‘name’] == G E T [ ′ p a s s w o r d ′ ] ) 判 断 时 两 数 组 要 是 不 同 的 , 但 在 第 二 处 e l s e i f ( s h a 1 ( _GET['password'])判断时两数组要是不同的,但在第二处 else if (sha1( G​ET[′password′])判断时两数组要是不同的,但在第二处elseif(sha1(_GET[‘name’]) === sha1($_GET[‘password’]))判断时由于
sha1()函数无法处理数组类型,将报错并返回 false,false === false 条件成立,这样就绕过了 sha()函数获得 flag

PAYLOAD: http://10.129.2.159:12004/challenge.php?name[]=11&password[]=1

转到获得 Flag: xgctf{cHeck1N_Ea5yphP pHP_15_greaT}

2、 nizhuansiwei

进入网页。
可以看到这段源码里的 file 是可控的,本地测试后有执行下面代码即可出现payload: http://10.129.2.159:12001/?text=data://text/plain,5Y6f6aKY5pyq5pS55Y qo&file=useless.php&password=O:4:%22Flag%22:1:%7Bs:4:%22file%22;s:8:
%22flag.php%22;%7D

进去后查看下网页源代码接可以看到隐藏的 flag

总结

这是第二次参加CTF的校赛,有了第一次参加的经验,这次比赛中攻击和破解的思路更广了,收获颇丰,比赛耗时更长了,虽然有几位高手去做运维了,但据说还有浙大的大佬参加友谊赛。相比去年三四十名已经冲击到了第四还是有很大的进步,本人不是计算机专业的,但全凭兴趣和努力一样可以做的很好。

CTF网络信息安全竞赛:记一次小比赛相关推荐

  1. ISCC2023全国大学生网络信息安全竞赛

    竞赛入口:http://www.isclab.org.cn 1 竞赛简介 信息安全已涉及到国家政治.经济.文化.社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲 ...

  2. 高职信息安全比赛攻防思路_2016广东省“中星杯”网络信息安全攻防大赛决赛回顾(2.0多图版)...

    悠悠五千年月落星移斗转, 历史的天空几度风云变幻. 中华强国梦, 怎样才能圆? 放眼茫茫未来去寻找答案. 啊! 大江东流 海纳百川, 上下求索 薪火相传. 征途路漫漫你我携手并肩, 跋涉的脚步化着雷鸣 ...

  3. 戴红计算机网络安全,我校举办第二届信息安全与网络攻防竞赛

    11月28日,我校第二届信息安全与网络攻防竞赛在我校计算机学院实验中心举办.来自全校的十组选手同台竞技,各显神通.最终,计算机学院"戴着小红帽的大灰狼"."黑曼巴&quo ...

  4. 记首次参加网络安全比赛(初赛-知识竞赛,决赛-CTF夺旗赛-解题模式)

    网络安全相关的方向很多,几乎IT相关的安全内容都可以涵盖在内.笔者本身的知识体系更偏向于编程语言和Web应用,本次参赛可谓极具挑战,但是就是喜欢这种感觉:) 赛程安排 9月16日接到通知 9月26日初 ...

  5. 国内外各类信息安全和网络对抗竞赛介绍

    特别声明:本文中所有信息均来自于互联网,其中大量篇幅源引自微信公众号"信息安全竞赛",本文仅供在校大学生个人学习信息安全知识,不可用于其他用途.转载本文须声明来源,并引述本声明. ...

  6. 在每天下午5点使用计算机时,网络信息安全知识网络竞赛试题(附答案)讲解学习...

    网络信息安全知识竞赛试题及答案 单选题 1.使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻击类型?(A) A.拒绝服务 B.文件共享 C.BIND漏洞 D. ...

  7. 第五届浙江省大学生网络与信息安全竞赛预赛 部分WP

    文章目录 Dijkstra 第五届浙江省大学生网络与信息安全竞赛-技能挑战赛 Web nisc_easyweb nisc_学校门户网站 吃豆人吃豆魂 买买买01 RE ManyCheck MISC 好 ...

  8. 第五届浙江省网络与信息安全竞赛部分WP

    第五届浙江省网络与信息安全竞赛部分WP Web nisc_easyweb 1.尝试进入robots.txt 2.分别尝试,发现最后一个可以,进入发现新地址 3.进入后查看源码,果然发现端详 4.构造新 ...

  9. ISW 2017:比CTF更刺激的真实网络攻防竞赛

    本文讲的是ISW 2017:比CTF更刺激的真实网络攻防竞赛,北京西二环一家五星级酒店里,一场异常激烈的网络安全竞赛刚刚落下帷幕. ISW 2017,由永信至诚和锦行科技联合承办.这两家公司,前一家擅 ...

最新文章

  1. 更改Linux用户的登录shell环境
  2. python基础案例教程_python基础教程 10-11例子如何执行
  3. 世界粮农组织五大健康食品_粮农组织的完整形式是什么?
  4. Linux系统编程25:基础IO之亲自实现一个动静态库
  5. Tips for ASP.NET Application Performance Enhancement
  6. 高职院校汽车相关专业AEB测试套件及自动驾驶相关传感器介绍
  7. STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)
  8. 汽车加油问题(python)
  9. 世界三大数学猜想 哥德巴赫猜想 费马大定理: 费马猜想: 质数算法c++ 1.NP完全问题 2.霍奇猜想 3.庞加莱猜想 4.黎曼假设 5.杨-米尔斯存在性和质量缺口 6.纳卫尔-
  10. python接受键盘输入_Python读取键盘输入的2种方法
  11. tpc1061ti使用说明_TPC1061TiMCGS昆仑通态人机界面触摸屏HMI
  12. 送东阳马生序 与君共勉
  13. MD软件常见问题解答sp1版
  14. 【ASM】Oracleasm命令
  15. 《Adobe InDesign CS5中文版经典教程》—第1课1.2节工作区简介
  16. 一文读懂机智云物联网APP开发
  17. [转]Windows 下常用盗版软件的替代免费软件列表
  18. pgsql创建用户并赋予权限
  19. 独立,做新世纪的好少年,无所畏惧
  20. 【SolidWorks宏】VBA操作SolidWorks程序对象

热门文章

  1. 一文搞懂显示技术的底层框架
  2. 【编程实践】SQLite 极简教程
  3. python 面向对象思想
  4. 艺考生文化课分数线丨各个省份去年的艺考生文化分数线最低分是多少?
  5. php引用js打开pdf,pdf.js使用爬过的坑
  6. 性能优化第一课:性能指标
  7. 面试题——js垃圾回收机制和引起内存泄漏的操作
  8. JS垃圾回收机制是怎样的?
  9. 【Step By Step】将Dotnet Core部署到Docker上
  10. ORA 00942 table or view does not exist