php无参数RCE小结

php无参数RCE小结

前言

最近的挺多比赛都遇到了php无参数RCE的题目,这里就直接上题目来讲解一下

CTF中的题目

题目1

来自Code Breaking的phplimit

1
2
3
4
5
6
<?php
if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) {
eval($_GET['code']);
} else {
show_source(__FILE__);
}

这里就是让我们构造传入的code不带参数(空参),然后分号结尾的恶意代码

方法1

方法2

方法3

题目2

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
error_reporting(0);
$functions = get_defined_functions();
//print_r($functions);

try{
foreach ($functions['internal'] as $function_name){
if(preg_match('/^[a-zA-Z]+$/',$function_name,$match))
echo $match[0].PHP_EOL;

}
}catch (Exception $e){
}

##

本文标题:php无参数RCE小结

文章作者:xianyu123

发布时间:2020年02月12日 - 21:38

最后更新:2020年09月07日 - 16:05

原始链接:http://0clickjacking0.github.io/2020/02/12/php无参数RCE小结/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------    本文结束  感谢您的阅读    -------------