[ACTF2020 新生赛]BackupFile 1

 

1.根据题目,获取备份文件

利用disreach扫备份文件,找到index.php.bak,下载该备份文件

 

 分析备份文件

这里涉及到一个知识点,在 PHP 的弱类型比较中,有两种比价符号——““、”=”。

其中==在比较时候是先将字符串类型转化为相同,再比较;===是先判断两种字符串的类型是否相等,再比较

==转换字符串的过程中,遵循如下原则:

  • 当字符串开始部分不存在数值的时候,会将该字符串转换为数值 0。如var_dump('abc' == 0),结果为 True
  • 当字符串开始部分有合法数值的时候,会将该字符串转换为合法数值。如var_dump('123abc' == 123),结果为True
  • 当字符串中包含 e 或者 E 时,会将其识别为科学计数法。如var_dump('0e12asda' == 0),结果为True

所以该题中,我们要使得$key == $str,且$key不能为字符,故可以构造Payload:?key=123,得到 Flag

 

posted @ 2022-10-22 15:30  kubopiy  阅读(360)  评论(0编辑  收藏  举报