3.7 命令注入攻击
1、命令注入攻击
概念:指由于开发人员缺少安全意识,在开发Web应用时未对用户提交的数据进行合规性检查,导致攻击者能够将命令作为普通用户数据提交给服务器执行
命令攻击形式有以下三种:
系统命令注入攻击:利用Web应用程序的漏洞,绕过了Web应用本身,直接与Web应用宿主服务器的命令执行接口交互
关键
调用系统命令接口
输入参数可控
命令注入是调用操作系统命令Shell执行命令
ls -l;rm -rf
远程代码执行是调用服务器网站脚本解释器执行脚本代码
<?php phpinfo()?>
系统命令执行函数
在代码审计时要特别注意这些函数
安全设置
限制用户输入的长度,仅满足业务需要的最低要求
攻击者对策
命令组装
命令反转
命令续行 同样,在代码审计时要特别注意
2、外部实体注入攻击(XXE攻击)
概念:当Web应用程序解析XML输入时,如果没有禁止外部实体的使用,导致服务器可加载恶意外部文件和代码,就会产生外部实体注入漏洞,被攻击者利用发起网络攻击
实体概念:实体是对数据的引用;根据实体种类的不同,XML解析器将使用实体的替代文本或者外部文档的内容来替代实体引用,由此引入了内部实体和外部实体的概念
内部实体 也称为命名实体,在文档类型定义DTD或內部子集中声明
在xml文档解析过程中,实体引用将由它的替代值来表示
外部实体 调用外部文件所申明的实体,若实体有任何的修改,则直接在该文档中更新,无需修改引用处的脚本,使用方便
代码示例
<!ENTITY xxe SYSTEM "expect://id">]>
第三行定义了一个通用实体xxe,所示含义为红色代码expect://id,expect是php扩展协议,用于执行系统命令,这句话的含义是查看系统当前用户的标识
第十行通过&xxe;的方式引用了通用实体,将这段xml提交服务器后,服务器就会执行系统命令id,并返回当前用户的身份标识信息
3、反序列化漏洞
序列化:把对象转换成字节流,便于保存在内存、文件、数据库中,即将对象的状态信息转换为可以存储或传输的形式,将其当前状态写入到临时或持久性存储区
二进制序列化能保持类型的真实度
反序列化:即序列化的逆过程,将字节流还原成对象
反序列化漏洞原理
漏洞关键
重写readObject()方法时使用了不安全的系统命令执行函数
未限制用户提交参数
防御
应用程序没有严格审查用户提交数据从而导致命令执行参数失控
命令执行函数的不正确使用
可以从过滤用户输入和限制命令执行函数的使用来降低命令注入攻击成功的概率
系统命令注入攻击:采用验证用户数据、编码用户数据、预设命令白名单和替换安全执行函数等方法予以规避
外部实体注入漏洞实现命令注入攻击:禁用外部实体、过滤和验证用户提交的xml数据、禁止xml中包含任何自声明的文档类型定义
利用反序列化漏洞实现命令注入攻击:关闭RMI服务的公网端口、设置Serial Killer补丁、禁止JVM执行外部命令、在不影响业务的情况下删除InvokerTransformer.class文件、定期升级weblogic、apache、jboss。
3.7 命令注入攻击相关推荐
- PHP漏洞全解(二)-命令注入攻击
命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec.``(与shell_exec功能相同) 函数原型 string s ...
- Command Injection命令注入攻击
实验目的与要求 1.了解命令注入攻击攻击带来的危险性. 2.掌握命令注入攻击攻击的原理与方法 3.掌握防范攻击的方法 预备知识 在PHP中您可以使用下列5个函数来执行外部的应用程序或函数. (1) s ...
- web服务器遭受命令注入攻击怎么办。
代码注入是指攻击者通过网站类型注入相应的代码,这个代码以当前网站用户的权限执行系统命令,在高级事件中,攻击者可能溢出来提权导致整个web服务器的沦丧. 倘若攻击路径到/shell了,这种情况就很严重了 ...
- notepad++怎么换行命令_命令注入新玩法:巧借环境攻击目标
在一次漏洞赏金活动中,挖掘到一个不标准的命令注入漏洞,我无法用命令分隔符.命令替换符注入新命令让系统执行,所以,从"型态"上讲,它不算是命令注入漏洞:但我又可以借助目标环境让载荷到 ...
- 固件安全性—防止内存损坏和注入攻击
固件安全性-防止内存损坏和注入攻击 Firmware Security – Preventing memory corruption and injection attacks 构成物联网(IoT)主 ...
- PHP命令注入 Command injection
命令注入攻击(Command Injection),是指黑客通过利用HTML代码输入机制缺陷(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容.从而可以使用系统命令操作,实现使用远程数据来构造 ...
- SaltStack 二修命令注入和提权漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Salt Project 再次发布补丁,修复命令注入漏洞 (CVE-2020-28243).该漏洞影响 SaltStack Salt ...
- 代码审计:命令注入学习
0x01 起因及想法 起因:好久没更新博客了,我在乌云社区看到一篇代码审计的整体学习思想如下: 学习代码审计目标:能独立完成对一个CMS代码安全的监测 思路: A.通读全文代码,从功能函数代码开始阅读 ...
- 注入攻击-SQL注入和代码注入
注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...
最新文章
- [ 转]Python模块(二)import和from...import的区别
- windows下Graphviz安装及入门教程
- 第九章 字符串,字符和字节
- ibe加密原理_ibe 基于身份的IBE加密源代码,采用C++语言编写,能够运行。 Crypt_De algrithms 解密 238万源代码下载- www.pudn.com...
- 文件名为空linux,文件系统:隐匿在Linux背后的机制
- Linux-环境变量的设置和查看
- Log4j 日志输出学习(Eclipse)
- 用JAVA实现小学四则运算
- php curl 超时 返回空,PHP curl 返回Connection timed out解决办法
- 《深入浅出设计模式》小结
- 数值分析(科学与工程计算、计算方法)
- MCSA / Windows Server 2016 服务器升级和迁移
- 【解决方案 二十五】如何对Excel表数据进行彻底转置
- 公有云时代企业需要什么样的云平台
- 北京摇号新政发布!每人只留一指标 60%新能源指标优先无车家庭
- 外媒评出世界十大地质奇迹
- java bigram_Android (Java) 编码惯例及最佳实践
- preceding-sibling::*[1]
- 电脑显示器基本设置与故障处理
- 转:SQL Server:获取当前日期是本月的第几周