[极客大挑战 2019]BuyFlag 1
时间: 2023-11-27 11:40:08 浏览: 119
根据提供的引用内容,[极客大挑战 2019]BuyFlag 1 是一道题目。题目要求买flag,需要满足两个条件:首先,你必须是来自CUIT的学生;其次,你必须输入正确的密码。在解题过程中,有人发现了一个漏洞,题目中使用了strcmp()函数,但该函数在传入数组时会直接返回0,而0在判断相等时是成立的,因此成功绕过。至于具体的解题方法和答案,需要进一步探究。
相关问题
[极客大挑战 2019]buyflag
[极客大挑战 2019]buyflag 是一道题目,指的是在某类型的比赛或活动中,参赛者需要通过购买一个特殊的标志(flag)来完成任务。在这类比赛中,通常需要参赛者在限定的时间内通过破解、攻击或其他方式获得标志,以获得比赛分数。
[极客大挑战 2019]BuyFlag
根据引用\[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 ]
阅读全文