phpclassFlag{//flag.phppublic$file;publicfunction__tostring(){if(isset($this->file)){echofile_get_contents($this->file);echo"";return("U R SO CLOSE !///COME ON PLZ"); } } }?> 这一段代码的意思是:获取这个$file参数代表的文件并且输出出来,注意Flag类中的$file参数与通过get传输$file参...
这个特点是利用了PHP是弱类型语言的特性,在对变量进行操作的时候,PHP会隐式的转换其变量类型,很多代码审计的题目也是利用了这一特性。 遇到障碍 有了上面的思路后,而且也成功执行了phpinfo(),下一步是不是就可以直接构造命令执行函数去进行读取文件,当时我也是这么想的,于是我构造了passthru(), system(), shell_...
考点一:利用php内置类FilesystemIterator 获取指定目录下的所有文件名。考点二:getcwd()函数的作用时返回当前工作目录。例题:<?phphighlight_file(__FILE__);error_reporting(0);if(isset($_GET['v1']) && isset($_GET['v2'])){ $v1 = $_GET['v1']; $v2 = $_GET['v2']; if(pre...
1.file://协议,需要填写绝对路径,只能读取txt文件。后面直接跟绝对路径即可。 file:///etc/passwd 2.php://filter (1)String Filters(字符串过滤器) php://filter/string.rot13/resource=flag.php //读出以后利用ROT13解码即可php://filter/string.toupper/resource=flag.php //转大写php://filter/string.t...
考点一:PHP变量名由数字字母下划线组成,是没有.的 我从大佬的文章了解到,GET或POST方式传进去的变量名,会自动将空格 + . [转换为_。 例题: <?php error_reporting(0); highlight_file(__FILE__); include("flag.php"); $a=$_SERVER['argv']; ...
http://www.xx.com?file=file:///etc/passswd php:// 作用: 访问输入输出流 1. php://filter 作用: 读取源代码并进行base64编码输出 示例: http://127.0.0.1/cmd.php?cmd=php://filter/read=convert.base64-encode/resource=[文件名](针对php文件需要base64编码...
考点一:利用php内置类FilesystemIterator 获取指定目录下的所有文件名。 考点二:getcwd()函数的作用时返回当前工作目录。 例题: <?php highlight_file(__FILE__); error_reporting(0); if(isset($_GET['v1']) && isset($_GET['v2'])){ $v1 = $_GET['v1']; $v2 = $_GET['v2']; if(preg_...
考点一:intval函数传入非空数组时会返回1 详情可以查一下PHP手册。【https://www.php.net/manual/zh/function.intval.php】 考点二:preg_match()只能处理字符串,当传入的是数组时将会返回false,详情也可以查一下PHP手册。例题:include("flag.php");highlight_file(__FILE__);if(isset($_GET['num']))...
考点一:intval函数传入非空数组时会返回1 详情可以查一下PHP手册。【https://www.php.net/manual/zh/function.intval.php】 考点二:preg_match()只能处理字符串,当传入的是数组时将会返回false,详情也可以查一下PHP手册。 例题: include("flag.php");highlight_file(__FILE__);if(isset($_GET['num']))...
1、反序列化函数,传入参数可控,如上面那道CTF题目$file就是可控的; 2、__destruct()方法可利用,如CTF题目就是利用__destruct()方法中的show_source(),从而暴露源码; 3、以上两点没有对传参进行过滤,否则无法构成目的Payload。 (二)底层PHP漏洞 简单来说,如果对象属性检查异常,那么Purrase_nested_data()将会返...