ctf-攻防世界-web:Web_php_include

 先看题目标题,php_include,猜测为文件包含漏洞。如同盲生发现了华点,我不会啊!百度补课走起。(需要补的知识有点多,待我学会慢慢填,先粗略写一下)

先放一个关于php伪协议的知识点: [WEB安全]PHP伪协议总结 - 肖洋肖恩、 - 博客园

打开环境,看到这样一段代码:

php小白粗略地进行一下代码审计,有问题的话还麻烦大佬们指正。

重点在include($page),使用了include这个文件包含函数,被include包含的$page通过get方式传入且可控。所以存在文件包含漏洞。但在判断中通过strstr过滤了"php://"(当传入的page存在php://时候替换为空)

可以利用php伪协议而strstr是区分大小写的,所以可以通过大小写绕过过滤

首先通过大小写及报错,确定是linux系统

1.使用php://input 伪协议

php://input可用于执行php代码,使用post方式传递代码即可。

构建url为111.200.241.244:59834?page=PHP://input,使用hackbar或burp抓包,用post方式传递php代码。

<?php system('ls'); ?>   列出所有文件

 <?php system('cat fl4gisisish3r3.php'); ?>   查看该文件,可得到flag

2.使用data://伪协议

data://伪协议可以执行php代码,格式如下:

data://text/plain,要执行的代码

如果特殊字符被过滤,还可以使用base64编码

?page=data://text/plain;base64,编码后的代码

还可以利用data写入一句话木马,通过菜刀或者蚁剑连接

连接地址构造如下

3.通过hello参数回显

这一种方法没有太弄明白,自己的大概理解如下:

首先使page参数为本页代码,绕过判断,会执行include文件包含本页代码,这时传入的hello参数会被视为php代码执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值