<?php error_reporting(0); highlight_file(__FILE__); $a = $_GET['a']; $b = $_GET['b']; if($a != $b && md5($a) === md5($b)){ $file = $_POST['file']; $content = file_get_contents($file); if($content === "2022 jluctf"){ $data = $_POST['data']; $filename = $_POST['filename']; str_replace('php','',$data); file_put_contents($filename,$data); }else{ echo "nono"; } }else{ echo "nonono"; } ?>
时间: 2023-06-16 11:02:11 浏览: 205
php模拟服务器实现autoindex效果的方法
这段代码是一个 PHP 脚本,它接受三个 GET 请求参数:a、b 和一个 POST 请求参数 file。如果 a 和 b 不相等,且它们的 MD5 值相等,那么它会读取 file 参数指定的文件,并检查文件内容是否为字符串 "2022 jluctf"。如果是,那么它会接受三个 POST 请求参数:data、filename 和一个不含有 "php" 的字符串。它会将 data 参数的内容写入到 filename 文件中。
这段代码中存在一些安全隐患。首先,它没有对输入参数进行过滤或验证,导致可能受到各种类型的攻击,如 SQL 注入、文件包含漏洞等。其次,它使用了 error_reporting(0) 函数来关闭错误报告,这使得攻击者可以更容易地隐藏攻击痕迹。最后,它使用了 str_replace('php','',$data) 函数来替换掉 data 参数中的 "php" 字符串,但是这种方式并不可靠,因为攻击者可以使用各种绕过技巧来绕过这种限制。
阅读全文