PHP漏洞全解(二)-命令注入攻击
命令注入攻击
PHP中可以使用下列5个函数来执行外部的应用程序或函数
system、exec、passthru、shell_exec、``(与shell_exec功能相同)
函数原型
string system(string command, int &return_var)
command 要执行的命令
return_var 存放执行命令的执行后的状态值
string exec (string command, array &output, int &return_var)
command 要执行的命令
output 获得执行命令输出的每一行字符串
return_var 存放执行命令后的状态值
void passthru (string command, int &return_var)
command 要执行的命令
return_var 存放执行命令后的状态值
string shell_exec (string command)
command 要执行的命令
漏洞实例
例1:
//ex1.php
<?php
$dir = $_GET["dir"];
if (isset($dir))
{
echo "<pre>";
system("ls -al ".$dir);
echo "</pre>";
}
?>
我们提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd
提交以后,命令变成了 system("ls -al | cat /etc/passwd");
eval注入攻击
eval函数将输入的字符串参数当作PHP程序代码来执行
函数原型:
mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候
//ex2.php
<?php
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("\$var = $arg;");
echo "\$var =".$var;
}
?>
当我们提交 http://www.sectop.com/ex2.php?arg=phpinfo();漏洞就产生了
动态函数
<?php
func A()
{
dosomething();
}
func B()
{
dosomething();
}
if (isset($_GET["func"]))
{
$myfunc = $_GET["func"];
echo $myfunc();
}
?>
程序员原意是想动态调用A和B函数,那我们提交http://www.sectop.com/ex.php?func=phpinfo 漏洞产生
防范方法
1、尽量不要执行外部命令
2、使用自定义函数或函数库来替代外部命令的功能
3、使用escapeshellarg函数来处理命令参数
4、使用safe_mode_exec_dir指定可执行文件的路径
esacpeshellarg函数会将任何引起参数或命令结束的字符转义,单引号“'”,替换成“\'”,双引号“"”,替换成“\"”,分号“;”替换成“\;”
用safe_mode_exec_dir指定可执行文件的路径,可以把会使用的命令提前放入此路径内
safe_mode = On
safe_mode_exec_di r= /usr/local/php/bin/
转载于:https://www.cnblogs.com/pingliangren/p/5586943.html
PHP漏洞全解(二)-命令注入攻击相关推荐
- PHP漏洞全解(一)-PHP网站的安全性问题
针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) ...
- 3.7 命令注入攻击
1.命令注入攻击 概念:指由于开发人员缺少安全意识,在开发Web应用时未对用户提交的数据进行合规性检查,导致攻击者能够将命令作为普通用户数据提交给服务器执行 命令攻击形式有以下三种: 系统命令注入攻击 ...
- Command Injection命令注入攻击
实验目的与要求 1.了解命令注入攻击攻击带来的危险性. 2.掌握命令注入攻击攻击的原理与方法 3.掌握防范攻击的方法 预备知识 在PHP中您可以使用下列5个函数来执行外部的应用程序或函数. (1) s ...
- XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
XSS(跨站脚本)漏洞详解 XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, ...
- 网站漏洞修复方案防止SQL注入攻击漏洞
SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...
- sql注入漏洞,应屏蔽SQL注入攻击
2019独角兽企业重金招聘Python工程师标准>>> 注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1 from dual where ...
- java 漏洞挖掘_Apache Tika命令注入漏洞挖掘
*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 介绍 这篇文章将从一个Apache tika服务器的命令注入漏洞到完全利用的步骤. ...
- php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题
845002618491765410.jpg (163.16 KB, 下载次数: 58) 2015-11-13 14:40 上传 针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Comman ...
- Linux最全解压命令(*.tar *tar.gz *.gz *.tar.bz2 *.bz2 *tar.xz *.xz *tar.Z *.Z *.rar *.zip *.7z *.7za)
压缩解压命令 (这里重点介绍tar命令,它是一个打包程序,它可 以调用其它的命令,如:gzip bzip2.除此之外还有 rar zip命令) 注:无特殊说明**/代表文件夹,*/代表次一级文件夹 * ...
最新文章
- 并查集 ---- 扩展域并查集判二分图 + 循环模拟字典树 The 2020 ICPC Asia Macau Regional Contest C. Club Assignment (详解)
- STM32F4 HAL库开发 -- DMA
- Mbs Framework 简介
- MyBatis学习后篇
- FFmpeg的下载及其简单使用
- 中文字符集与字符编码的基础知识
- UVC app流程图
- Error in library(patRoon) : 不存在叫‘patRoon‘这个名字的程辑包
- 数据猿专访诸葛io孔淼:数据与业务“动态”结合才能发挥最大威力
- HNUST Java 数据库系统课程设计:学生管理系统
- 单端口和双端口的优势_双端口测量和 S参数 - 灵活应用网络分析仪
- 高德地图 搜索定位 搜索关键词 定位
- Maven的生命周期和插件
- RedMonk最新编程语言排行榜;Spring 框架现 RCE 漏洞……|叨资讯
- TDengine学习笔记
- 26、用户 创建用户
- 什么是驱动?驱动程序的工作原理?
- vue3 使用富文本tinymce-vue
- C语言-自动识别用户输入的字符串并便于后期处理
- Spring异常:NoSuchBeanDefinitionException: No qualifying bean of type ‘it.com.dao.AccountDao‘ available