政务系统网站建设,微信营销软件群发,沧州黄骅港赶海的地方,帮人家做网站维护文章目录 前言一、pandas是什么#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.PHP伪协议利用
php://协议 php://filter #xff1a;用于在读取作用和写入文件时进行过滤和转换操作。 作用1#xff1a;利用base64编码过滤器读取源码
通常利用文件包含执行php://filte…文章目录 前言一、pandas是什么二、使用步骤 1.引入库2.读入数据总结 一.PHP伪协议利用
php://协议 php://filter 用于在读取作用和写入文件时进行过滤和转换操作。 作用1利用base64编码过滤器读取源码
通常利用文件包含执行php://filter伪协议读取的源码会被服务器执行从而不会显示因此需要使用特殊操作读取源码。
利用php://filter 的读取源码的基本语法如下读取源码以base64编码格式输出
php://filter/readconvert.base64-encode/resource文件路径
演示案例
?php
$a $_GET[a];
include(flag.php);
include($a); 利用php://filter 以base64编码方式读取的源码 用base64解码后获得 flag.php源码完整信息 作用2-(1)利用base64解码码绕过防御代码
利用php://filter 的base64方法解码问价内容基本语法如下
php://filter/writeconvert.base64-decode/resource文件路径
一些防御代码为了阻止webshell代码被执行通常会在传递的参数前添加一些代码。
演示案例
?php
$content ?php exit; ?;
$content .$_GET[txt];
file_put_contents($_GET[filename],$content);
?
尝试通过URL参数上传webshell代码到文件webshell.php中 成功上传后webshell.php文件内容 即使webshell成功上传但是前面多出的防御代码会破坏webshell结构使其无法执行。这个防御代码十分常见通常出现在缓存或配置文件等地方防止用户直接访问文件。那么如何绕过? php://filter伪协议支持多种方式读取和转换文件其中包括以base64解码的方式读取文件。
当我们尝试利用php://filter伪协议将文件以base64方式解码再读取时防御代码?php exit; ?会被当做base64编码进行解码而?php exit; ?是php代码而非base64编码?php exit; ?因为无法正常解码会被当作乱码写入文件乱码不会被执行就不会影响webshell的执行。 成功上传后webshell.php文件内容 执行1一下webshell.php文件试试---成功执行 作用2-(2)利用strip_tags()函数去除防御代码
strip_tags()会剥离字符串中的HTML和PHP标签我们可以将webshell进行base64编码后上传这样strip_tags()函数会帮助我们去除防御代码同时联合base64编码过滤器将webshell解码 总结