<dl id="wqg5j"></dl>

    1. <menuitem id="wqg5j"></menuitem>

      <dl id="wqg5j"><font id="wqg5j"></font></dl>
    2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
    3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
      <li id="wqg5j"><ins id="wqg5j"></ins></li>
      安基网 首页 安全 安全学院 查看内容

      渗透测试入门¡ª¡ª命令执行漏洞详解

      2018-10-8 00:10| 投稿: xiaotiger |来自: 互联网


      免责声明£º本站系公益性非盈利IT技术普及网£¬本文由投稿者转载自互联网的公开文章£¬文末均已注明出处£¬其内容和?#35745;?#29256;权归原网站或作者所有£¬文中所述不代表本站观点£¬若有无意侵权或转载不当之处请从网站右下角联系我们处理£¬谢谢合作£¡

      摘要: 当应用需要调用一些外部程序去处理内容的情况下£¬就会用到一些执行系统命令的函数¡£如PHP中的system£¬exec£¬shell_exec等£¬当用户可以控制命令执行函数中的参数时£¬将可注入恶意系统命令到正常命令中£¬造成命令执行 ...

      大家好我是衬衫£¨投稿£©£¬因为文?#26102;?#36739;水£¬所以请各位见谅£¨本文只针对命令执行£¬与代码执行不相同£©

      1. 命令执行漏洞介绍

      当应用需要调用一些外部程序去处理内容的情况下£¬就会用到一些执行系统命令的函数¡£如PHP中的system£¬exec£¬shell_exec等£¬当用户可以控制命令执行函数中的参数时£¬将可注入恶意系统命令到正常命令中£¬造成命令执行攻击¡£

      2. 命令执行漏洞£º直接调用操作系统命令

      举个例子贴出代码

      这里发现con_fuction里面有exec£¬那么exec()这个函数是干嘛的呢£¿

      下面我给大家简单介绍一下php中的可以导致命令执行的函数

      system函数----string system(string command, int [return_var]);

      实例代码: $last_line = system(ls, $retval);

      exec函数----string exec(string command, string [array], int [return_var]);

      实例代码 :echo exec("whoami");

      popen函数----int popen(string command, string mode);

      实例代码

      $fp = popen( "/bin/ls", "r" );

      这里的函数还有很多因为我不写php£¬所以上面的可能不太专业

      下面就是由于这个exec导致的问题了

      他用了exec也就说明他能执行系统命令£¬那么我们尝试进行一次执行

      一般我们的poc都是calc,那么这就是最简单的一个命令执行漏洞了

      那么我们下面为大?#24050;?#31034;命令注入

      首先在学习命令注入前我们要理解的是

      1. linux管道符

      2. 简单的几个linux命令

      3. 绕过本地验证

      那么下面我给大家介绍一下linux管道符号

      网上的内容五花八门

      个人觉得用处比较大的就是"&" "|"

      用法大家看一下

      如下时在windows执行

      命令为whoami&ipconfig如果我们换一个命令呢

      换成whoami|ipconfig

      这时候我们发现用"&"作为管道符的命令成功的执行了前后两个然而"|"此命令只执行了后面的ipconfig所以管道符的使用也?#36879;?#20986;水面

      下面我们同样在linux下执行一下

      我们的"&"符号是前后两个命令?#26469;?#25191;行

      而"|"符号是命令1 的正确输出作为命令2的输出对象.¡£

      我们开始命令注入的讲解

      这里是一个靶场£¬介绍说的是"内部人员方便运维工作留下的ping命令的页面"那么他是执行ping命令£¬我们就可以尝试让目标去通过管道符号去执行系统命令¡£

      如果他的命令式ping ip 那么我可以带ping ip|任意命令£¬这样就可以执行系统命令

      我们来尝试一下

      这里js弹窗说ip格式不正确他有本地的js校验

      我们看一下?#21019;?#30721;

      其中

      function f_check_IP()

      { var ip = document.getElementById(reg_ip).value;

      var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;

      if(re.test(ip))

      {

      if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)

      return true;

      }

      alert("IP\\u683C\\u5F0F\\u4E0D\\u6B63\\u786E");

      return false;

      }

      这一段js代码是为了检查怎么的ip

      那么如何绕过js验证

      我们可以用firefox一个插件noscript我这里不是用的noscript用的是js swith

      装好插件之后我们直接点击红色js

      然后刷新页面

      输入127.0.0.1|whoami

      成功执行了系统命令

      我们获取flag的方式无非是那几样我们先"ls"一下

      成功回显了目标的目录内文件

      我们正常的读取文件都是cat xxxx

      那么我们现在尝试cat key_22112201407597.php

      但是这里无回显

      我们发现cat key_22112201407597.php

      中间存在空格£¬所以我断定是空格导致的问题

      这里就要介绍一个Linux¡¢里面 的空格{IFS}

      bashIFS是内部的域分隔符

      也就是空格的意思我们可以修改命令为cat{IFS}key_22112201407597.php

      但是没有成功回显£¬一开始这个靶机执行cat{IFS}key_22112201407597.php是正常回显但是可能出了些问题£¬所以我们再来想办法

      这里还有一个小技巧在Linux里我们执行cat

      和cat xxx是一样的

      举个例子

      这样也是可以的

      那么我们尝试

      cat

      成功返回了flag

      这就是一个命令注入的姿势¡£

      3. 总结£º我们在漏洞挖掘的实战过程中啊£¬很少会碰见这样额接口£¬相对于多的是某个框架和中间件的漏洞

      比如strust2 weblogic jboss 我们需要在github或者exploit-db寻找exp去进行测试

      最后?#34892;?#22823;家的阅读£¬谢谢£¡£¡


      Tag标签:

      小编推荐£º欲学习电脑技术¡¢系统维护¡¢网络管理¡¢编程开发和安全攻防等高端IT技术£¬请 点击这里 注册账号£¬公开课频道价值万元IT培?#21040;?#31243;免费学£¬让您少走弯路¡¢事半功倍£¬好工作升职?#26377;„¦?/font>

      本文出自£ºhttps://www.toutiao.com/a6584957712080044557/

      免责声明£º本站系公益性非盈利IT技术普及网£¬本文由投稿者转载自互联网的公开文章£¬文末均已注明出处£¬其内容和?#35745;?#29256;权归原网站或作者所有£¬文中所述不代表本站观点£¬若有无意侵权或转载不当之处请从网站右下角联系我们处理£¬谢谢合作£¡


      鲜花

      ?#24080;?/a>

      雷人

      路过

      鸡蛋

      相关阅读

      最新评论

       最新
      返回顶部
      Ðþ»úͼ
      <dl id="wqg5j"></dl>

        1. <menuitem id="wqg5j"></menuitem>

          <dl id="wqg5j"><font id="wqg5j"></font></dl>
        2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
        3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
          <li id="wqg5j"><ins id="wqg5j"></ins></li>
          <dl id="wqg5j"></dl>

            1. <menuitem id="wqg5j"></menuitem>

              <dl id="wqg5j"><font id="wqg5j"></font></dl>
            2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
            3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
              <li id="wqg5j"><ins id="wqg5j"></ins></li>