命令执行漏洞
远程代码执行漏洞
代码执行漏洞也叫代码注入漏洞,指用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
修复方案:禁用 eval(),system() 等可以执行命令的函数。如果一定要使用这些函数,则需要对用户的输入数据进行处理。此外,在PHP/JSP中避免动态include远程文件,或者安全地处理它。代码注入往往是由于不安全的编程习惯所导致的,危险函数应该尽量避免在开发中使用,可以在开发规范中明确指出哪些函数是禁止使用的。这些危险函数一般在开发语言的官方文档中可以找到一些建议(摘自:白帽子讲Web安全)。
例如下面的代码,我们创建了一个 index2.php 文件
<?php
eval($_REQUEST['code']); #执行code代码
?>
当我们访问 http://127.0.0.1/file/index2.php?code=phpinfo(); 时,系统就会执行 phpinfo(); 这个命令
在一些编程语言中,有一些函数是可以对操作系统进行操作的。 比如,php中以下函数可以对系统进行操作:
- system():执行一个外部的应用程序的输入并显示输出的结果
- exec():执行一个外部的应用程序,但不显示输出的结果
- passthru():执行一个系统命令并显示原始的输出
- shell_exec():执行shell命令并返回输出的结果的字符串
- `` :与shell_exec函数的功能相同
我就拿system这个函数解释一下
system:system函数可以用来执行一个外部的应用程序的输入并将相应的执行结果输出。
string system(string command , int & return_var)
- command参数是要执行的命令,
- return_var参数存放返回的值,可不写该参数
那么,假如我们访问这个链接看会发生什么情况:
http://127.0.0.1/file/index2.php?code=system("ipconfig");
可以看到,他执行了system("ipconfig"); 代码,而这个代码执行了系统的ipconfig命令,所以把当前的网络配置给列出来了
假如我们把命令换成这个呢? http://127.0.0.1/file/index2.php?code=system("net user hack 123 /add");
这里因为我们新建了一个用户,所以360发现是黑客攻击
那么,如果某些人的电脑上没有360这种安全软件呢?
那他就会执行新建用户这个命令!那样,黑客就能远程随意操控用户的电脑了!
相关链接:DVWA之Command injection(命令执行漏洞)
相关文章
- kali上部署dvwa漏洞测试平台
- PowerShell ISE/文件名解析缺陷远程执行代码漏洞#RCE
- Redis未授权访问漏洞
- 20200904-DedeCMSv5.7SP2代码执行漏洞
- jumpserver 远程执行漏洞分析和复现
- ThinkPHP 5.x远程命令执行漏洞分析与复现
- Windows Shell远程执行代码漏洞((CVE-2018-8414)复现
- 命令执行和代码执行漏洞详解
- CVE-2017-8464远程命令执行漏洞(震网漏洞)复现
- 服务器版“永恒之蓝”高危预警 (Samba远程命令执行漏洞CVE-2017-7494) 攻击演示
- 安全测试全面总结-7- XSS漏洞
- 安全测试全面总结-6-SQL注入漏洞
- dedecmsV5.7 任意文件上传漏洞修复
- wordpress 4.6任意命令执行漏洞(PwnScriptum)复现
- CVE-2022-22965 漏洞分析,安全问题早发现
- fuzz实战之libfuzzer——自己生成测试用例, 交给程序测试,然后检测程序是否出现异常 根据执行的输出结果中 是否有 Segmentation fault 和 error来判断是否触发了漏洞
- 13 - vulhub - Couchdb 任意命令执行漏洞(CVE-2017-12636)
- WEB漏洞攻防 - SQL注入 - 安全测试思路总结
- WEB漏洞攻防 - 文件上传漏洞 - CMS类应用场景 - [见文章头]任意文件上传漏洞
- HTTP.sys 远程执行代码 漏洞 MS15-034 CVE-2015-1635
- Nessus 扫描log4J漏洞