11.13命令执行和代码执行

Phpmyadmin任意文件包含漏洞[CVE-2014-8959]

漏洞范围:4.0.1-4.0.1.6  4.1.1-4.1.14.7  4.2.1-4.2.12

文件包含漏洞防御

1、修改php的配置文件,将open_basedir的值设置为可包含特定目录,后面要加/,例如:open_basedir=/var/www/html

2、关闭allow_url_fopen可以防止本地文件包含和远程文件包含

3、关闭allow_url_include可以防止远程文件包含

4、对可以包含的文件进行限制,可以使用白名单的方式,或者设置可以包含的目录,如open_basedir

5、进行严格的检查,参数中不允许出现../之类的目录跳转符号

命令执行和代码执行

命令执行漏洞产生原因:

1、参数用户可控

2、用户输入的数据被当做命令来执行,没有过滤或过滤不严谨

用作命令执行的函数:

 

shell_exec()

exec()

passthru()

popen()

proc_open()

命令执行:

简单分类:

Web层命令执行system(‘whoami’)

第三方组件命令执行漏洞:Wordpress中用来处理图片的ImageMagickstruts2ElasticsearchGroovy

系统层面的命令执行(上面shell_exec()等等)

命令执行漏洞的危害性和当前web中间件的权限有关,如果web中间件是以管理员权限运行,则漏洞可以以管理员权限运行

代码执行:

当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能够控制这个字符串,将造成代码注入漏洞

Php中:evalassertpreg_replace(‘/*/e’,’$ret=”\1”;’,$data);

asp中:evalexecuteexecuteglobal

Jsp中:jsp中没有phpeval函数,但是可以使用反射机制,使用基于反射机制的表达式引擎,如OGNLSpELMVEL.

1

 

2urly Syntax 漏洞利用
关于{${}}这种形式涉及到了php Complex (curly) syntax
<?php
$a=$_GET["id"];
@eval("@$sql_a=$a;");
?>

之后http://127.0.0.1/test.php?id=${phpinfo()}

原文地址:https://www.cnblogs.com/x98339/p/11851188.html