目录
信息收集
从题目来看应该是让扫描备份文件(backupfile)
进入页面就一句话
Try to find out source file!
先用dirbuster模糊扫描一下目录
常见的如下
index.phps
index.php.swp
index.php.swo
index.php.php~
index.php.bak
index.php.txt
index.php.old
常见备份文件:“.git” 、“.svn”、“ .swp” “.~”、“.bak”、“.bash_history”、“.bkf“
在index.php.bak下载到一份源码
思路
代码审计
intval() 函数用于获取变量的整数值。
intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
构造payload
?key=123
得到flag
知识补充
由于php中数字和字符串比较时
$v1 = "1";$v2 = 1;if ($v1==$v2){ echo ("true
");} else{ echo("false
");};if ($v1===$v2){ echo ("true
");} else{ echo("false
");};
true
false
false
true在php中 == 判断时 当数字与字符串作比较时,系统会先将字符串转化为数字,再与数字进行比较。数字和字符串进行比较时,当这个字符串是一个无法转换为数字的字符串,它就会被强制转化为数字,结果总是为0
数字+字符(字符串)
true
字符(字符串)+数字
';if($c==$b){echo "true";}else{echo "false";}?>
false
true
数字+字符(字符串)+数字
';if($c==$b){echo "true";}else{echo "false";}?>
true
false
字符(字符串)+数字+字符(字符串)
true
来源地址:https://blog.csdn.net/qq_63701832/article/details/128708564