CTF新生赛之Writeup

作为零基础的新生,也是在开学后才了解了CTF,感觉本次新生赛中颇有收获,也是应赛制要求,故写下这份WP,以纪念本人的第一次CTF竞赛。

回顾和感想

回顾本次的新生赛,难度合适,自己从对CTF一无所知到入门再到学习相关知识,确实有很大的进步;从做题的过程中来看,期间有欣喜也有挫败:欣喜的是通过自己的努力将一道初看起来没思路的题慢慢解答出来,在提交flag的那一刻确实很激动;但意识到自己能做了好几道题却还只有那么点分,或者看着在自己刚出来还有几百分的题慢慢下降直到50分,也让我十分泄气,感到自己的无知与弱小。但总的来说是喜悦大于气馁,我还是在这次比赛中感受到了CTF的乐趣,并且决定继续在这条路走下去。

关于组队

在面试那天我偶遇了自己的同学LZM(也就是本次比赛的队友),那时候我还对CTF并不是很了解,也不知道该如何入门。面试后我们在路上聊了会,他说他会做一点pwn,于是我就咨询他怎么入门,并表明自己很喜欢数学,于是他给了我做密码学等等建议。之后趁着双十一买了本从零到一开始看书学习,又借着群里的资源看了CTF特训营电子版,稍微了解了一些Web和Crypto的知识。
后来新生赛要开始了,我的同学中没有想认真参加的(有些参加拿学时的),于是我问了LZM,知道他也没有队友后我们就组成了一队,然后我取队名叫马猴烧酒hhhhhhhhhhhhhhhhh。

比赛

其实本来我觉得我队友很厉害,但是没想到他这么厉害,开始后三天内就把pwn杀穿了,群里也开始对马猴烧酒有些呼声。但我才300分,也就是做了签到题和几道简单web,那时候心里真的很不是滋味,明明自己没有什么作用,但却在这个队伍里。
一段低迷后,开始重点做Crypto的题,对照书上的内容,再阅读大量网上的资料,很快就理解了RSA的概要。再观察题目的特点,马上跑出来了前几道。但是到了后面几道,题目就是阅读python,这对我来说十分不友好,因为我看不懂Python。但这时候我的队友也把PWN几乎做完了,而他也是专攻一个方向,没有了解过密码学,于是我们开展团队合作:他帮我认代码,我告诉他题目的解法,于是RSA1、2以及Math 1就被这么做出来了。我自己也比较开心,因为我对团队也做出了贡献。

而最大的感触也是我们两个互补共同解答一道题,我研究理论而我的队友负责操作,感受到了团队的氛围。针不戳!!
遗憾的话就是没有去了解PWN和RE的相关内容,因为队友全部做了hhh,之后还是要广泛学习一下的!

最后再夸一波我的队友,他超强的!!人也好,在我做出来超简单的题目后也会鼓励我,55555

Misc

[签到题]关注微信公众号

这里我只做了两道签到题,不放图了吧0.0
哈哈哈送分来了
过程是关注微信公众号SCUCTF,发送SCUx401CTF即可获得flag

问卷

填写问卷,获得flag

excalibur

下载文件包后没有目的的找,突然就找到了

scuctf{y0u_134rn_f0r93_v3ry_w311}

Web

因为是从Web入的门,所以先做的Web。这次新生赛做了六道题,都是非常简单的。但是因为看不懂PHP语言所以无法继续向前走了555,easyweb我感觉差点可以做出来,得到了hgg.com后就不会做了0.0。

真是签到题

页面一直在跳动,隐约可以看到跳动的是字符,于是想先把它停下来。登录QQ,Ctrl+Alt+A截图,便看到了flag。

情感日记

点开后是很多文字,部分文字含有黄色下划线,猜测含有下划线的文字可能有线索,于是先点几次舌头,突然看到了一半的flag
于是一直点,将剩下的一半也找出来
合并在一起得到flag。

easyhtml

既然和html有关,那么按F12看源码。根据页面提示“前端要写好注释”,去查看Elements,果然在body里找到了flag
(语气好温柔啊www)

我爬我爬

点开题目看到了提示“简单的robots”,于是进入网站后在后面加“/robots.txt",进入新页面
看到了个disallow的后缀,代表目前还不能访问的,于是再重新加入后缀,又进入一个新页面
有数字有大小写字母,base64冲冲冲,然后得到flag

easyheehee

点开发现是贪吃蛇游戏,然后看介绍游戏被破坏了,但是我还是要玩的,然后吃到第三个豆就不让吃了。我一开始想的是要修改游戏设置,让我可以吃到后续的豆,然后在Elements开始修改,一番胡乱改动之后确实可以吃后续的豆了,但是分数上不去,然后尝试修改吃一个豆的得分,然后失败了。之后去看Network,有一个很明显的cookie头
lookme都出来了,那肯定是答案了。但等号后面明显不是flag格式,猜测是加密过的,于是拿去base64翻译
解码后面又带俩等号,那肯定又是base64加密后的了,于是再解码一编,得到一个php后缀
那么把后缀加进去,就得到了flag

(新生系列6)看我后面

页面提示php的备份名,直接加入/index.php没有反应,于是一个个试“.git” 、“.svn”、“ .swp”“.~”、“.bak”,在输入/index.php.bak后得到一个压缩文件,直接打不开,那么就进入文件夹用记事本打开
大概看懂了是要get一个值为5201314hgg的变量psw

提示只能是数字,那么把hgg去掉后就得到了flag

(新生系列9)渣男记录

点开网站观察动画后没什么有用的信息,然后看源码,也没看出什么(我是真的全部看了0.0),再猜是不是包含备份文件,在网站中加入后缀/index.php后没有报错,就猜测是文件包含,上网搜了一下CTF 备份文件
参考的是这篇文章
试了一下www.zip,发现真的有文件包下载,那么证明思路是对的。
将文件解压:

点开index.php观察了一下发现就是页面源码,应该没什么用;
flag.php里也没有正确的flag(我真的试了一下);
class.php里面是一些代码,看不懂,然后和队友交流了一下。他之后就做出来了,告诉我涉及了PHP的序列化和反序列化,于是现学了一点就做出来了。
团队力量大!耶!

后记:害其实easyweb就差后面一步了,burp suite抓包后用XFF代理ip得到了hgg.com,但是进去后就不会了;以及normalphp,感觉应该不难但是读不懂代码。其实自己的web学的很浅很浅,坐等wp。

Crypto

开局放图皮一下

classic_1

古典密码,含有括号,凯撒密码没跑了。找个在线工具一个个试,试到13就得到了flag

classic_2

简单的多重编码,那么就是加密了多次。其实这个我一开始没做出来,因为书上的定义描述base16是数字和大写字母,但是这里是小写,所以我一开始没有想到去查base16,而base64解出来是很奇怪的东西,所以很疑惑。但后面都试过之后就没办法了,只有当作base码来解。

源文件里的密码只有数字和小写字母,根据书上的定义猜测是base16

后面有等号,又有大小写,那么是base64

解出来发现是摩斯电码,当时做的时候我没找到能直接翻译的工具,于是我一个个抄下来对着摩斯表抄,抄的时候发现有两组含有6个点横,但表中没有,猜测这两个是括号,之后就解出来了。
这是当时的记录:

RSA1

从RSA开始由于电脑环境以及个人水平的原因,我自己是解决不了了,于是我研究理论并且找脚本,然后让队友跑出来,这是我们做密码学之后的策略。

下载文件后看到信息
先试着用yafu和在线网站分解n但是失败了,于是想到换个方法。因为e=3太明显了,,阅读资料后了解到这是低指数明文。如果m^e<n,
所以可以知道c=m3,直接将c开三次方,得到的不是整数,所以m^e>n,且没有大很多,那么存在k满足k*n<m3<(k+1)n,所以可以将k爆破出来,通过关系式kn-c=m3来爆破明文,于是有如下脚本
from Crypto.Util.number import long_to_bytes,bytes_to_long,getPrime,isPrime import primefac def modinv(a,n): return primefac.modinv(a,n) % n n=17076697689025821279984148703479525857912324396375097877800474725170566885465833732966897433803722770843910606215420934526050277173030062927090405120718833473629930226217051580832179577629652910778242159108718885516149768995851175071714817922775555170553827627677999093195969471873530031984433631909841287167351534954860426002075822101506835880510505034002629168205724869128357383388034971402180363910826536064357845040799329301895842061729319929568340334416516796267886218679042058969927331452548377324349084816441144473807565907927986545026739667157223640848553663532280797054758912745891410981282851031085852562257 e=3 c=892408374578063131162925795619920779766603018609992406621503024400320421262482556891045333045408815199768659578199823419716777827460090306221618906101139272423449131313434967763664295600593363990276765767066758967765012850672428517786210813209127040442832574380675662826137452780727264357 import gmpy2 i=0 while 1: if(gmpy2.iroot(c+i*n, 3)[1]==1): print long_to_bytes(gmpy2.iroot(c+i*n, 3)[0]) break i=i+1
交给我的队友直接跑出来了得到flag:
scuctf{8ef98504b1acb7c8c8976e60f53d9325}

RSA2

已知e、n、c,那就是RSA里最基础的题了。
用网站分解n,得到三个解
然后使用如下代码:

from Crypto.Util.number import long_to_bytes,bytes_to_long,getPrime,isPrime
import primefac
def modinv(a,n):return primefac.modinv(a,n) % n
n=21280377217500047527333756734822477656202976970565771310208586426341167199342722337358334403397116963913950346969157
e=0x10001
c=7162732898109470668490761172640544970587920562229245172318483665877098759808623298921271357899945260719802967519239
p= 199045230832669039221046041578658179479
q= 319438022064098846441615805897528174851
r=334688613728124045578795340681788885633
d=modinv(e,(p-1)*(q-1)*(r-1))
m=pow(c,d,n)
print long_to_bytes(m)

将代码交给队友跑出来结果如下

Math1

这一题先由队友给我翻译代码的意思
然后我想起来看到过和这个很像的一个定理叫中国剩余定理,看了一些后发现和这一题对应,于是告诉队友是这么个解法
之后靠着队友强大的编程能力解了出来

CTF新生赛之Writeup相关推荐

  1. 逆向迷宫题总结(持续更新) 2020华南师大CTF新生赛maze,攻防世界新手区:NJUPT CTF 2017,BUUCTF:不一样的flag

    CTF逆向入门:迷宫题学习记录(持续更新) ** 目录 **CTF逆向入门:迷宫题学习记录(持续更新)** (前言) 一. 逆向迷宫题概述 二. 具体题目分析 1. 2019华南师大CTF新生赛maz ...

  2. php upload ctf,强网杯CTF防御赛ez_upload Writeup

    这是强网杯拟态防御线下赛遇到的web题目,本来是不打算分享Writeup的,但是由于问的人很多,于是这里分享给大家. ez_upload这题算是非常经典的堆叠black trick的题目,算是比较典型 ...

  3. Ctf新生赛misc“easy_osint”

    记录一下第一次打ctf的解题步骤,之后整合整理 年轻人不要被图片隐写啊禁锢思想 就这还要用Stegsolve图片三色素.jar,就这就这 这题还真的是让你找这可爱的广场 是什么地方 百度osint(开 ...

  4. [青少年CTF]弱口令实验室招新赛部分WriteUp

    Web 0x01 开胃菜 <?php highlight_file(__FILE__); if(strlen($_GET[1]&&$_GET[1]<=5)){echo st ...

  5. TJUCTF新生赛-AI安全专栏write up

    以下题目为我本次为天津大学ctf新生赛出的AI安全专栏中的所有题目,所有代码仅限学习交流,请勿用于非法活动或商业用途. 1. 签到题 非常简单的签到题,不过其可能会对于其他题目有帮助哦 本题只有如下一 ...

  6. “蚁景杯”WUSTCTF2021新生赛writeup

    "蚁景杯"WUSTCTF2021新生赛writeup Crypto 签到 滴答 AES With RSA GMC Vigenere give you d 银河信号 Misc Erx ...

  7. ctf 抓捕赵德汉_2017网络空间安全技术大赛决赛周末开战 大家赶紧来看看之前线上赛的Writeup 抓捕赵德汉...

    网络空间安全技术大赛决赛本周末就要开战了,在之前,让我们一方面请CTF高手聊比赛经验,另外一方面抓紧回顾一下线上赛的Writeup,这对于后续的比赛至关重要. 26个队伍杀入5月13日决赛 网络空间安 ...

  8. CTF笔记 [SWPUCTF 2021 新生赛]pop

    文章目录 一些常见魔术方法 [SWPUCTF 2021 新生赛]pop 总结 这一类题目比较考验对一段代码的逻辑方面的理解,通过利用魔数方法进行互相调用,形成一条链子,利用这条链子将对象联系起来去拿f ...

  9. CTF Crypto RSA合集(新生赛难度)

    食用简介 下面是本人新生赛时遇到的一些RSA密码题,题目名后大概写有类型便于查找 题目较多可以选择性食用 1.buuctf RSA 题目:在一次RSA密钥对生成中,假设p=473398607161,q ...

最新文章

  1. 小心Redis漏洞让你服务器沦为肉鸡
  2. 奔小康赚大钱 hdu 2255( KM )
  3. 如何聚焦自己的研究方向?一个实例研究
  4. Office编程在dot Net环境中总结(Word生成表格报表篇)
  5. Android数据存储之SQLite
  6. CSS3 Flex布局子元素的属性
  7. MySQL 【Row】下的 Event_type
  8. matlab gui编写计算器,怎样用MATLAB中的GUI做一个简单计算器
  9. 因为一条SQL,我差点被祭天......
  10. asp.net出现【视图状态消息身份验证错误】
  11. fcbf特征选择python_全自动机器学习:自动特征筛选(B)R语言自动特征工程实现...
  12. 【统计学习】细节笔记 [ 3 ] :贝叶斯角和两类错误角度理解混淆矩阵(为什么不能每个人都做核酸检测)
  13. IT项目验收流程及说明
  14. psd 解析 java_PSD解析工具实现(一)
  15. 三进制与八进制相互转换
  16. 线粒体DNA(mtDNA)捕获探针panel试剂盒myBaits Expert Mito,适用各种样本类型(包含降解和环境DNA,化石或博物馆样本均可),应用于遗传学研究
  17. android百度地图获取经纬度
  18. oracle怎么生成osf,Oracle技术之Linux 建立软raid
  19. 魅族l681q详细开启Usb调试模式的步骤
  20. 微信小游戏客户端开发环境搭建

热门文章

  1. 百度前端技术体系——百度EFE(Excellent FrontEnd)技术体系
  2. 直播系统开发之ios对接腾讯云直播sdk
  3. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例52
  4. 全自动爬虫,你爱了么
  5. vue地图绘制圆形、椭圆、矩形或其他自定义图案
  6. Chrome 扩展是什么?我们如何建造它?
  7. jeecgboot自动关闭本页标签Tab页
  8. Java基础【08】常用API——RandomAccessFile相关API
  9. 台式计算机cpu允许温度,台式cpu温度多少正常呢?老司机科普一下CPU常见问题
  10. (附源码)ssm基于WEB的房屋出租管理系统 毕业设计261620