[RoarCTF 2019]Easy Calc

3.实验原理
源代码查找有用的.php信息,PHP的字符串解析特性,file_get_contents() 函数:把整个文件读入一个字符串中。
4.实验步骤
打开靶场,表面上没有什么发现
图片
查看源码,看到有个calc.php
图片
看到php代码,进行分析
图片
这里注入了一下,浏览器有回显
图片
知识点:
PHP的字符串解析特性:PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:1.删除空白符 2.将某些字符转换为下划线(包括空格)【当waf不让你过的时候,php却可以让你过】。假如waf不允许num变量传递字母,可以在num前加个空格,这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。
图片
知识点:
scandir() 函数:返回指定目录中的文件和目录的数组。
var_dump() 函数会输出变量的详细信息,包括类型和值。它通常用于调试目的。
/calc.php?%20num=1;var_dump(scandir(chr(47))),试试WP别人的playload(47是/的ASCII编码)
图片
找到flag相关目录,
知识点:
file_get_contents() 函数:把整个文件读入一个字符串中。该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。
最终payload:
/calc.php?%20num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
图片

posted @ 2026-04-01 13:16  hua/ok  阅读(21)  评论(0)    收藏  举报