命令执行漏洞

本文深入解析命令执行漏洞,包括PHP和Java中的命令执行方法,如system()、shell_exec()、exec()、passthru()及Runtime类的exec()方法。探讨了命令连接符在Windows和Linux系统中的应用,并提供了防范措施。
摘要由CSDN通过智能技术生成

命令执行漏洞:

介绍:攻击者可以任意执行系统命令

  • PHP命令执行
  • Java命令执行
  • 命令连接符

1)PHP命令执行

介绍:PHP提供部分函数用来执行外部应用程序(四种方式执行命令)

  • system()、shell_exec()、exec()、passthru()

     1.1)命令执行(例如):利用pxp.exe执行php文件

          执行命令:php.exe cmd.php "|net user"

          php.exe:执行某文件

          cmd.php:代码文件

          "|net user":代码文件中的参数

     1.2)代码执行:利用eval()函数执行字符串(php代码)

     1.3)动态函数调用:

     1.4)PHP函数代码执行漏洞:像preg_replace()、ob_start()、array_map()等

2)Java命令执行

例如在Runtime类中存在exec()方法以单独的进程执行指定的字符串命令

......

3)防范命令执行漏洞

  • 尽可能不使用系统执行命令
  • 对于开启了系统执行命令函数,做好过滤和特殊字符转义
  • 动态函数使用之前,确保使用的函数是指定函数之一
  • 对于PHP,不能完全控制的函数尽可能不使用

4)命令连接符号

windows支持:

command1 && command2     #command1执行成功了才会执行command2
command1 & command2        #不管command1是否执行成功,command2都会执行
command1 | command2         #直接执行command2
command1 || command2       #command1执行失败了,才会执行command2


Linux支持:

command1 ; command2          #command1执行完执行command2     
command1 && command2     #command1执行成功了才会执行command2
command1 & command2        #不管command1是否执行成功,command2都会执行
command1 | command2         #将command1的输出结果作为command2的输入的内容(管道符)
command1 || command2       #command1执行失败了,才会执行command2
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值