0基础入门代码审计-8 命令执行

admin 2024年5月14日20:54:02评论23 views字数 709阅读2分21秒阅读模式

0x01 漏洞描述

命令执行是系统使用了可以执行命令的危险函数,但是调用这些函数的参数可控,并没有做过滤或过滤不严格,使攻击者可以通过构造特殊命令字符串的方式将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源。

0x02 审计要点

1、参数是否用户可控,如用户输入的外部数据是否拼接到可执行命令函数的参数内?

2、是否配置了全局过滤器?检查过滤器的配置,是否所有命令的执行都经过过滤器处理,过滤器的过滤规则是否符合安全要求

3、定位关键函数

l${}执行代码

leval

lassert

lpreg_replace

lcreate_function()

larray_map()

lcall_user_func()/call_user_func_array()

larray_filter()

lusort()/uasort()

lsystem()

lpassthru()

lexec()

lshell_exec()

l`反引号

lob_start()

0x03 典型漏洞代码

0基础入门代码审计-8 命令执行

此时cmd.exe使用了/K参数,将后续传入的参数用户命令执行,这里拼接的参数从前段中获取,对参数未作任何过滤,导致命令注入。

0x04 防御方案

  1. 1.所有需要执行的系统命令,需由开发人员定义好,不允许接收用户传来的参数,加入到系统命令中去。任何一个执行系统命令的代码,都必须经过安全工程师确认。

  2. 2.执行代码的参数或文件名,禁止和用户输入相关,只能由开发人员定义代码内容,用户只能提交“123”参数,代表相应代码。

0基础入门代码审计-8 命令执行

点赞,转发,在看

    点击关注

    学习技术

反入侵实验室

0基础入门代码审计-8 命令执行
0基础入门代码审计-8 命令执行

原文始发于微信公众号(反入侵实验室):0基础入门代码审计-8 命令执行

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月14日20:54:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   0基础入门代码审计-8 命令执行https://cn-sec.com/archives/2071672.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息