本文目錄一覽:
- 1、PHP網站要防哪幾種常見方式攻擊?
- 2、PHP的網站主要攻擊方式有哪些
- 3、網站木馬病毒入侵掛馬,被注入script和eval代碼,主機虛擬空間還是程序漏洞?具體如何解決?
- 4、求PHP中eval()函數的使用方法
- 5、Payload:可否為php代碼執行?
PHP網站要防哪幾種常見方式攻擊?
常見攻擊方式:1、命令注入,2、eval注入,3、客戶端腳本攻擊,4、跨網站腳本攻擊,5、SQL注入攻擊,6、跨網站請求偽造攻擊,7、Session 會話劫持,8、Session 固定攻擊,9、HTTP響應拆分攻擊,10、文件上傳漏洞,11、目錄穿越漏洞,12、遠程文件包含攻擊,13、動態函數注入攻擊,14、URL攻擊,15、表單提交欺騙攻擊,16、HTTP請求欺騙攻擊
PHP的網站主要攻擊方式有哪些
1、命令注入(Command Injection)
2、eval注入(Eval Injection)
3、客戶端腳本攻擊(Script Insertion)
4、跨網站腳本攻擊(Cross Site Scripting, XSS)
5、SQL注入攻擊(SQL injection)
6、跨網站請求偽造攻擊(Cross Site Request Forgeries, CSRF)
7、Session 會話劫持(Session Hijacking)
8、Session 固定攻擊(Session Fixation)
9、HTTP響應拆分攻擊(HTTP Response Splitting)
10、文件上傳漏洞(File Upload Attack)
11、目錄穿越漏洞(Directory Traversal)
12、遠程文件包含攻擊(Remote Inclusion)
13、動態函數注入攻擊(Dynamic Variable Evaluation)
14、URL攻擊(URL attack)
15、表單提交欺騙攻擊(Spoofed Form Submissions)
16、HTTP請求欺騙攻擊(Spoofed HTTP Requests)
網站木馬病毒入侵掛馬,被注入script和eval代碼,主機虛擬空間還是程序漏洞?具體如何解決?
一般都是網站程序存在漏洞或者伺服器存在漏洞而被攻擊了
網站掛馬是每個網站最頭痛的問題,解決辦法:1.在程序中很容易找到掛馬的代碼,直接刪除,或則將你沒有傳伺服器的源程序覆蓋一次但反反覆復被掛就得深入解決掉此問題了。但這不是最好的解決辦法。最好的方法還是找專業做安全的來幫你解決掉
聽朋友說 SineSafe 不錯 你可以去看看。
清馬+修補漏洞=徹底解決
所謂的掛馬,就是黑客通過各種手段,包括SQL注入,網站敏感文件掃描,伺服器漏洞,網站程序0day, 等各種方法獲得網站管理員賬號,然後登陸網站後台,通過資料庫 備份/恢復 或者上傳漏洞獲得一個webshell。利用獲得的webshell修改網站頁面的內容,向頁面中加入惡意轉向代碼。也可以直接通過弱口令獲得伺服器或者網站FTP,然後直接對網站頁面直接進行修改。當你訪問被加入惡意代碼的頁面時,你就會自動的訪問被轉向的地址或者下載木馬病毒
清馬
1、找掛馬的標籤,比如有script language=”javascript” src=”網馬地址”/script或iframe width=420 height=330 frameborder=0
scrolling=auto src=網馬地址/iframe,或者是你用360或病殺毒軟體攔截了網馬網址。SQL資料庫被掛馬,一般是JS掛馬。
2、找到了惡意代碼後,接下來就是清馬,如果是網頁被掛馬,可以用手動清,也可以用批量清,網頁清馬比較簡單,這裡就不詳細講,現在著重講一下SQL資料庫清馬,用這一句語句「update 表名 set 欄位名=replace(欄位名,’aaa’,”)」, 解釋一下這一句子的意思:把欄位名里的內容包含aaa的替換成空,這樣子就可以一個表一個表的批量刪除網馬。
在你的網站程序或資料庫沒有備份情況下,可以實行以上兩步驟進行清馬,如果你的網站程序有備份的話,直接覆蓋原來的文件即可。
修補漏洞(修補網站漏洞也就是做一下網站安全。)
1、修改網站後台的用戶名和密碼及後台的默認路徑。
2、更改資料庫名,如果是ACCESS資料庫,那文件的擴展名最好不要用mdb,改成ASP的,文件名也可以多幾個特殊符號。
3、接著檢查一下網站有沒有注入漏洞或跨站漏洞,如果有的話就相當打上防注入或防跨站補丁。
4、檢查一下網站的上傳文件,常見了有欺騙上傳漏洞,就對相應的代碼進行過濾。
5、儘可能不要暴露網站的後台地址,以免被社會工程學猜解出管理用戶和密碼。
6、寫入一些防掛馬代碼,讓框架代碼等掛馬無效。
7、禁用FSO許可權也是一種比較絕的方法。
8、修改網站部分文件夾的讀寫許可權。
9、如果你是自己的伺服器,那就不僅要對你的網站程序做一下安全了,而且要對你的伺服器做一下安全也是很有必要了!
求PHP中eval()函數的使用方法
eval() 函數把字元串按照 PHP 代碼來計算。
該字元串必須是合法的 PHP 代碼,且必須以分號結尾。
如果沒有在代碼字元串中調用 return 語句,則返回 NULL。如果代碼中存在解析錯誤,則 eval() 函數返回 false。
例子:
?php
$string = “beautiful”;
$time = “winter”;
$str = ‘This is a $string $time morning!’;
echo $str. “br /”;
eval(“\$str = \”$str\”;”);
echo $str;
?
輸出:
This is a $string $time morning!
This is a beautiful winter morning!
Payload:可否為php代碼執行?
代碼執行漏洞是指應用程序本身過濾不嚴,攻擊者可以通過請求將代碼注入到應用中,最終在web伺服器上去執行。
危險函數執行PHP代碼的有:
eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(), create_function(), array_map()等。
1.eval()和assert()函數本身就可動態執行代碼,其參數就是PHP代碼
payload: ? eval(‘phpinfo();’);?
2.preg_replace()函數的第一個參數存在e修飾符時,第二個參數和第三個參數可能當作PHP代碼被執行
preg_replace漏洞觸發有兩個前提:
第一個參數需要e標識符,有了它可以執行第二個參數的命令
第一個參數需要在第三個參數中的中有匹配,不然echo會返回第三個參數而不執行命令
//echo preg_replace(『/test/e』, 『phpinfo()』, 『just test』);這樣是可以執行命令的
//echo preg_replace(『/test/e』, 『phpinfo()』, 『just tesxt』); 或者echo preg_replace(『/tesxt/e』, 『phpinfo()』, 『just test』); 這兩種沒有匹配上,所以返回值是第三個參數,不會執行命令
payload:
?php preg_replace(‘/
(.∗)
(.∗)
/e’,’\\1′,’$_GET[‘a’]);?
請求1.php?a=[phpinfo()]
3.call_user_func()和array_map()等函數的作用就是調用其他函數,並將第二個參數作為回調函數的參數
payload:
?php $b=’phpinfo()’; call_user_func($_GET[‘a’],$b);?
請求1.php?a=assert, 則調用了assert函數
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284739.html