iwebsec–代码执行漏洞

iwebsec–代码执行漏洞

iwebsec–代码执行漏洞

文章目录

  • iwebsec–代码执行漏洞
    • 01-代码执行漏洞eval函数示例
    • 02-代码执行漏洞assert函数示例
    • 03-代码执行漏洞call_user_func函数示例
    • 04-代码执行漏洞call_user_func_array函数示例
    • 05-代码执行漏洞create_function函数示例
    • 06-代码执行漏洞array_map函数示例
    • 07-代码执行漏洞preg_replace漏洞函数示例
    • 08-可变函数漏洞示例

01-代码执行漏洞eval函数示例

<?php
	if(isset($_POST[1])){
		@eval($_POST[1]);
	}else{
		exit();
	}
?>

代码审计
如果post请求中有1,就会执行1中的参数

在这里插入图片描述

02-代码执行漏洞assert函数示例

<?php
	if(isset($_POST[1])){
		@assert($_POST[1]);
	}else{
		exit();
	}
?>

assert()函数和evel()函数类似,能把里面的字符串转化为php代码执行

在这里插入图片描述

03-代码执行漏洞call_user_func函数示例

<?php
	if(isset($_POST['fun'])||isset($_POST['arg'])){
		call_user_func($_POST['fun'], $_POST['arg']);
	}else{
		exit();
	}
?>

call_user_func()函数第一个参数是函数,第二个参数是调用的参数
fun=“系统执行的函数”,而arg=“系统执行的命令”

在这里插入图片描述
在这里插入代码片
可以说,如果黑客知道有这个函数那么后果是非常严重的,可以写入任意的语句

04-代码执行漏洞call_user_func_array函数示例

<?php
	if(isset($_POST['fun'])||isset($_POST['arg'])){
		call_user_func_array($_POST['fun'], $_POST['arg']);
	}else{
		exit();
	}
?>

和call_user_func一样没太大区别

在这里插入图片描述

05-代码执行漏洞create_function函数示例

<?php
	if(isset($_GET['id'])){
		$id = $_GET['id'];
		$code = 'echo '.$func.'test'.$id.';';
		create_function('$func',$code);
	}else{
		exit();
	}
?>

create_function()函数,func构造的函数,而func构造的函数,而funccode构造的是代码执行

?id=1;}phpinfo();/*

这里就是将函数进行闭合{echo $id;}在执行phpinfo();

06-代码执行漏洞array_map函数示例

<?php
	if(isset($_GET['func'])||isset($_GET['argv'])){
		$func=$_GET['func'];
		$argv=$_GET['argv'];
		$array[0]=$argv;
		array_map($func,$array);
	}else{
		exit();
	}
?>

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

?func=system&argv=pwd

07-代码执行漏洞preg_replace漏洞函数示例

<?php
	if(isset($_GET["name"])){
	   $subject= 'hello hack';
	   $pattern = '/hack/e';
	   $replacement = $_GET["name"];
	   echo preg_replace($pattern, $replacement, $subject);
	}else{
		exit();
	}
?>

特别说明:
/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。

在这里插入图片描述

08-可变函数漏洞示例

<?php
	if(isset($_REQUEST['func'])){
		function func1() {
			echo "func1函数";
		}
		function func2($arg = '') {
			echo "func2函数";
		}
		function func3($arg){
			echo "func3函数的参数是".$arg;
		}
		$func = $_REQUEST['func'];
		$arg = $_REQUEST['arg'];
		echo $func($arg);
	}else{
		exit();
	}
?>

在这里插入图片描述

爱我所爱,悔不当初–沃兹基硕德

                       

点击阅读全文

上一篇 2023年 6月 9日 pm9:02
下一篇 2023年 6月 9日 pm9:03