[CISCN2021] 初赛 easy_source

这篇博客回顾了一次国赛中的编程挑战,重点涉及PHP的反射类和源码备份文件的解析。作者通过尝试不同的文件扩展名,最终发现需要使用.index.php.swo来获取隐藏信息。博客介绍了如何利用ReflectionClass来读取类的注释,特别是针对User类,并构造了payload来获取flag所在的函数注释。此外,还提到了通过遍历参数来猜测函数位置,并建议学习CTFshow和PHP反射机制的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[CISCN2021] 初赛 easy_source

在这里插入图片描述
国赛,很有经历和意义,希望继续挑战
国赛和大家做的一道题,国赛比较难,只有现在有时间回过去看看:
在这里插入图片描述
进去后,界面大概如上图,
在这里插入图片描述
提示如上图:

猜测备份文件,实际上当时没扫描出来,试了.svn .swp .swo等,后来别个提示才发现:

实际上前面要加一个点,也就是.index.php.swo
在这里插入图片描述
在这里插入图片描述
现在看来应该去考虑php的原生类反序列化,是一个典型题目:

使用[反射类]new ReflectionClass("类名"),获得这个类的信息

参考:https://r0yanx.com/2020/10/28/fslh-writeup/

和:CTFshow100:
在这里插入图片描述
详情参考php的反射机制:
在这里插入图片描述
据题目提示,猜测flag在注释中,也就是所谓的看不到的地方。

直接用php内置类中的ReflectionClass读取User类中的信息:

利用该类返回,flag所在的函数的注释。

构造payload:

?rc=ReflectionMethod&ra=User&rb=a&rd=getDocComment

在这里插入图片描述
这样的话就相当于,(reflectionMethod(User,a) ->getDocConmment())

反射其注释

不知道在哪个函数里,所以就更改a,b,c进行抓包,猜测:

然后搞定:
在这里插入图片描述
建议看看CTFshow或者了解php的原生类导致的漏洞.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F1gh4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值