freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

代码审计学习-7(命令执行(代码执行)个人相关学习思考)
2024-05-29 15:57:16

1.命令和代码执行的本质是什么

命令执行的本质是调用操作系统的接口来执行特定的系统命令。这些命令通常是由操作系统提供的,例如Linux的ls、cd等,或者Windows的dir、cd等。

代码执行的本质是调用后端语言(如PHP,JAVA等)来执行特定代码。代码执行通常发生在你的程序内部,它不直接与操作系统交互,而是通过你的程序来控制计算机的行为。

总的来说,命令执行和代码执行都是为了让计算机执行特定的操作,但它们的工作方式和使用场景有所不同。

其实说白了,都是注入类攻击,主要也是看过滤。

2.审计的特征(思路)

命令执行的代码审计特征:

  • 命令执行漏洞发生的根本原因是"用户可控的"、”未经净化“的数据直接作为可执行命令函数的参数。
  • 参数是否用户可控,如用户输入的外部数据是否拼接到可执行命令函数的参数内?
  • 是否配置了全局过滤器?检查过滤器的配置,是否所有命令的执行都经过过滤器处理,过滤器的过滤规则是否符合安全要求?
  • 例如,Java中的Runtime.getRuntime().exec(cmds),其中cmds是一个字符串数组,包含了要执行的命令和参数。如果这些参数可以被用户控制,那么就可能存在命令执行漏洞。

代码执行的代码审计特征:

  • 代码执行漏洞是指因为系统使用了可以执行命令的危险函数,但是调用这些函数的参数可控,并没有做过滤或过滤不严格,使攻击者可以通过构造特殊命令字符串的方式将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击。
  • 例如,当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞4。

简单来说着重点就是过滤规则和危险函数。


3.简单说下危险函数

命令执行的危险函数:

  • system():将字符串当作操作系统命令执行。
  • exec():将字符串当作操作系统命令执行,但只输出命令执行的最后一行。
  • shell_exec():将字符串当作操作系统命令执行。
  • passthru():将字符串当作操作系统命令执行。
  • popen():能够执行操作系统命令,相当于把命令执行结果输出到一个文件内。
  • 反引号``:反引号内的字符串,也会被解析成操作系统命令。

代码执行的危险函数:

  • eval():将字符串当作PHP代码执行。
  • assert():将字符串当作PHP代码执行。
  • preg_replace():将字符串正则匹配后替换。
  • call_user_func():回调函数。
  • array_map():回调函数。

上面只说了比较出名的,并不是所有的,还有一些基于框架和一些服务的,比如SpEL和JNDI这种。简单说下,不做具体分析。

SpEL(Spring Expression Language),即Spring表达式语言。SpEL表达式是可以操作类及其方法的,可以通过类类型表达式T(Type)来调用任意类方法。在不指定 EvaluationContext 的情况下默认采用的是 StandardEvaluationContext,而它包含了SpEL的所有功能,允许用户在可以控制输入 的情况下成功造成任意代码执行。

Java命名和目录接口(JNDI)是一种Java API,类似于一个索引中心,它允许客户端通过name发现和查找数据和对象。JNDI注入是一种安全漏洞,发生在应用程序接受用户输入并将其作为JNDI(Java Naming and Directory Interface)查找的参数。如果参数可控,攻击者可以传入恶意的URL,远程加载恶意载荷。例如,当开发者在定义JNDI接口初始化时,lookup()方法的参数可控,攻击者就可以将恶意的URL传入参数,远程加载恶意载荷,造成注入攻击。这可能导致远程代码执行,对系统安全构成威胁。

一般来说,最简单初步的测试log4j就是利用这个jndi服务去联动dnslog平台去看访问记录,看看存在不存在该漏洞。理论上,只要存在执行操作,就有执行风险,具体还是看环境。


再会,铁子。

# 代码审计
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录