欢迎来到天天文库
浏览记录
ID:11161365
大小:122.50 KB
页数:4页
时间:2018-07-10
《php漏洞全解(二)-命令注入攻击》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本文主要介绍针对PHP网站常见的攻击方式中的命令攻击。CommandInjection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。AD:命令注入攻击PHP中可以使用下列5个函数来执行外部的应用程序或函数system、exec、passthru、shell_exec、“(与she
2、ll_exec功能相同)函数原型stringsystem(stringcommand,int&return_var) command要执行的命令 return_var存放执行命令的执行后的状态值stringexec(stringcommand,array&output,int&return_var) command要执行的命令 output获得执行命令输出的每一行字符串 return_var存放执行命令后的状态值voidpassthru(stringcommand,int&return
3、_var) command要执行的命令 return_var存放执行命令后的状态值 stringshell_exec(stringcommand) command要执行的命令漏洞实例例1:1.//ex1.php 2. 我们提交http://www.sectop.com/ex1.
4、php?dir=
5、cat/etc/passwd提交以后,命令变成了system("ls-al
6、cat/etc/passwd");eval注入攻击eval函数将输入的字符串参数当作PHP程序代码来执行函数原型:mixedeval(stringcode_str)//eval注入一般发生在攻击者能控制输入的字符串的时候1.//ex2.php 2.
7、val("$var = $arg;"); 6.echo "$var =".$var; 7.} 8.?> 当我们提交http://www.sectop.com/ex2.php?arg=phpinfo();漏洞就产生了;动态函数1.
8、nc"]; 13.echo $myfunc(); 14.} 15.?> 程序员原意是想动态调用A和B函数,那我们提交http://www.sectop.com/ex.php?func=phpinfo漏洞产生防范方法1、尽量不要执行外部命令2、使用自定义函数或函数库来替代外部命令的功能3、使用escapeshellarg函数来处理命令参数4、使用safe_mode_exec_dir指定可执行文件的路径esacpeshellarg函数会将任何引起参数或命令结束的字符转义,单引号“’”,替换成“’”
9、,双引号“"”,替换成“"”,分号“;”替换成“;”用safe_mode_exec_dir指定可执行文件的路径,可以把会使用的命令提前放入此路径内safe_mode=Onsafe_mode_exec_dir=/usr/local/php/bin/
此文档下载收益归作者所有