0xGame-switch

Sevsunshine 2023-09-22 14:26:19 712 0


1、打开题目,首先就是一句英文,问你是否了解vim。

    vim是linux自带且常用的文件编辑器,vim在编辑时会生成一个隐藏的临时文件,当vim非正常关闭时这个文件就会被保留下来。即.(编辑的文件加上).swp。

了解了什么是vim,那我们就可以尝试访问一下。/.index.php.swp

2、然后就会得到一个index.php.swp文件。放到linux中打开,会得到一段比较混乱的代码。


简单整理了一下,大致应该就是这样:


3、if语句中,2被单引号包裹了,如果$id是整数型,PHP 会自动进行类型转换,将'2'转换为整数2,然后进行比较。但是如果$id也是字符串类型,那么在执行比较表达式$id == '2'时,PHP 会进行字符串比较而不是数值比较。

php中,switch使用的是也是弱比较==。

那由此可知,id的值就可以是2a这种类型的,在if语句中进行字符串比较,在switch中会进行数值比较。

然后就是preg_match的绕过,这里直接大小写绕过就可以了。

最后的payload就是  id=2a&file=php://FiltEr/convert.Base64-encode/resource=flag.php

最后得到的结果进行base64解码就是flag啦!

<?php
$flag='0xGame{S0me_pHp_tR1cKs_u_G3t_1t}';


分类:WEB
image
作者:Sevsunshine

2

提交

0

收入

相关WriteUP

问题反馈