[极客大挑战 2019]BuyFlag
时间: 2023-10-04 09:09:43 浏览: 198
根据引用\[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 ]
阅读全文