php5繞過open basedir讀檔案指令碼

2021-12-29 22:16:12 字數 2603 閱讀 9417

漏洞很久之前(大概5年前)被提出來了,但並不是php**上的問題,所以問題一直存在,直到現在。我一直沒留意,後來yaseng告訴我的,他測試了好像5.5都可以。

給出我寫的exp:

}如我們欲讀取/etc/passwd。其實原理就是建立乙個鏈結檔案x,用相對路徑指向a/a/a/a,再建立乙個鏈結檔案exp指向x/../../../etc/passwd。其實指向的就是a/a/a/a/../../../etc/passwd,其實就是./etc/passwd。這時候刪除x,再建立乙個x目錄,但exp還是指向x/../../../etc/passwd,所以就成功跨到/etc/passwd了。

精華就是這四句:

symlink("abc/abc/abc/abc","tmplink");

symlink("tmplink/../../../etc/passwd", "exploit");

unlink("tmplink");

mkdir("tmplink");

我們訪問http://***/exp,如果伺服器支援鏈結檔案的訪問,那麼就能讀到/etc/passwd。

其中並沒有任何操作觸發open_basedir,但達到的效果就是繞過了open_basedir讀取任意檔案。錯誤不在php,但又不知道把錯誤歸結到誰頭上,所以php一直未管這個問題。

我在我的vps(php5.3.28 + nginx)和樹莓派(php 5.4.4 + nginx)上都測試過,成功讀取。

樹莓派測試:

相比於5.3 xml那個洞(那個很多檔案讀不了),這個成功率還是比較穩的,很多檔案都能讀。而且版本沒要求,危害比較大。

php5中的GPC繞過缺陷

magic quotes gpc選項是php中的乙個重要的安全設定,當該選項為on也就是開啟的時候,所有從get,post,cookie傳遞過來的資料中的 以及null等元字元都會被自動的加上 實現轉義,這個選項使得sql注入或者插入 以及xss中引入字串或者改變程式流程變得困難,但是在php5中一...

PHP5配置選項

在unix平台上安裝基本沒有變化 1.gunzip 5.x.x.tar.gz 2.tar xvf 5.x.x.tar 3.cd 5.x.x 4.configure 5.make 6.make install 7.apachectl restart configure 配置命令取決於安裝步驟可能需要另...

php5 讀書心得

由於工作中要用到php,最近下了本 php5 power programming 在讀,外文的,還不錯,打算寫些讀書心得,可能會零散些。這次講的是多型。首先看乙個例子,是講動物發出的叫聲的。class cat class dog function printtherightsound obj els...