【web | CTF】极客大挑战 2019 Secret File

解题要点

【解题思路】

    目录扫描+检查源码 ->发现了一个隐藏目录

    根据文字提示,觉察到有隐藏暗跳

    找到暗链后访问就能看到解题源码

    直接利用文件访问漏洞读取php文件源码即可

【难点】

    通过题目语言暗示觉察出暗中跳转

【漏洞点】

    源码泄露

    文件包含漏洞

步骤一:发现隐藏目录

查看源码发现了隐藏的目录文件

ctrl+点击,跳转速达

步骤二:发现隐藏文件跳转网址

SECRET可以点击,那我们就点一下看看吧

点完后,url变了,界面也变了

这提示很明显就是告诉我们有个跳转在一瞬间完成了,但我连续认真看了几次也没发现跳没跳,那就抓包看吧

果然发现了隐藏跳转,在网址里看到源码有个备注的文件,那我们就来访问一下吧

步骤三:代码审计走起

复制粘贴一下去访问这个文件,发现了源码,那就证明解题思路没有错了,接下来就是代码审计啦

注释里讲的很清楚,flag在flag.php文件里面(直接访问就不要想了,不然题目给你源码干嘛)

代码审计了一下,传参入口是file,而且有四重阻拦,但认真看了一下发现,全是干扰项而已,根本拦不住我

直接上文件读取伪协议即可,解密base64后就能看到flag

#只能在此界面里才能传参,其他界面都无效

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用\[1\],题目要求买flag,需要满足两个条件:首先,必须是来自CUIT的学生;其次,需要输入正确的密码。根据引用\[2\]的描述,有人尝试了一些方法,发现需要在cookie中设置一个USER变量为1来表示是CUIT的学生,但是密码还是不正确。经过仔细观察,发现需要使用POST提交方式,并且还需要提交money参数。然而,由于money参数过长,导致了strcmp函数的问题。strcmp函数在PHP5.3之前存在漏洞,当数据类型不匹配时会返回0,即与比较成功的结果一样。因此,只要传入非字符串类型的数据,比如数组,就可以绕过密码验证。这个漏洞可以通过查看参考资料\[4\]中的文章了解更多细节。另外,引用\[3\]提到了is_numeric函数的一些特性,对于空字符%00,无论是放在前面还是后面,都会判断为非数值;而空格字符%20只能放在数值后面才会被判断。这些信息可能对解题有所帮助。 综上所述,题目要求满足CUIT学生身份和正确的密码才能购买flag。通过设置cookie中的USER变量为1来表示CUIT学生身份,然后使用POST提交方式,并传入非字符串类型的数据来绕过密码验证。此外,还需要注意is_numeric函数对空字符和空格字符的判断规则。 #### 引用[.reference_title] - *1* [[极客挑战 2019]BuyFlag](https://blog.csdn.net/m_de_g/article/details/127720694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CTF学习笔记——[极客挑战 2019]BuyFlag](https://blog.csdn.net/Obs_cure/article/details/113820888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星盾网安

能花钱买到的知识,都不贵

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

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

打赏作者

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

抵扣说明:

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

余额充值