1. 程式人生 > >伺服器防禦基礎(常見的幾種攻擊手段以及應對方式)

伺服器防禦基礎(常見的幾種攻擊手段以及應對方式)

前言

網際網路世界魚龍混雜,我們的網站放在internet上除了網站使用者和會員會造訪,還會有一群覬覦網站利益伺服器功能的人在暗中觀察,抓住機會找到漏洞就把網站一舉拿下,從而盜取資料或是利用伺服器資源作為礦機等等,因此伺服器防禦也是不可忽略不可輕視的一方面。

大部分公司在開發運維過程中並不會去刻意注意伺服器安全,也不會去請專門的安全人員,直到伺服器被攻破,被人勒索了以後才會意識到安全問題的重要性,雖說見兔顧犬,未為晚也,亡羊補牢,未為遲也,但是倘若我們能做到防範於未然,做好基礎防禦,至少讓小學生級別的黑客被拒之門外,豈不善哉。

本文也僅作為基礎防禦手段收集,如果公司資料非常重要,還是需要請專門的安全公司來保駕護航。

常見攻擊手段

1、針對網站

1.1、SQL注入

sql注入也是老生常談了,基本上算是常識了,這種手段無非是利用後臺漏洞通過URL將關鍵SQL語句帶入程式並在資料庫中執行從而造成破壞性結果。常見情況包括後臺使用了的致命的字串拼接,比如在java的jdbc中使用如下寫法

String sql = "select * from t_user where username = "+username;

如果入參username在url中被換成不懷好意的sql語句或者其他,資料庫也就危險了。

localhost:8080/testproj/queryUser?username=;drop%20t_user;

此外,類似的mybatis的${}寫法也是同樣道理,最好換成#。

1.2、後臺框架、協議漏洞

利用框架協議漏洞則是針對程式和系統缺陷,比如漏洞百出的struts2框架,到今天為止也不知道放出多少漏洞了,這些漏洞基本上是針對EL表示式缺陷使得URL中的程式碼得以執行,針對方式也很簡單,換掉struts2或者不斷升級。應對這種情況就需要運維人員關注漏洞公告,及時與開發溝通配合,更新程式,代價成本也比較高。這裡也推薦可以使用一些漏洞掃描工具,及時發現自己網站的後門,防範於未然。比如Acunetix Web Vulnerability Scanner還是挺好用的。

1.3、程式邏輯漏洞

這個就需要黑帽子們比較有耐心,去一點點找出來,舉個例子,網站有效性校驗。針對數值有效性,前端有進行過濾,但是網站後臺沒有做引數有效性校驗,這時候惡意者使用F12或postman等拼裝ajax請求,將dfa或者-1ad這種非法數字傳送給後臺,健壯性差的程式就很容易報錯,異常暴露到頁面上,瞬間就能讓操作者知道後臺使用何種語言何種框架。更嚴重的可能是利用程式邏輯漏洞做重複提交、越權操作等行為,因此需要開發人員注意。

1.4、CSRF攻擊

這種手段就比較高明瞭,需要黑帽子會構建釣魚網站,且對目標網站請求方式比較熟悉。原理就是利用瀏覽器儲存的cookie,比如我登入目標會員網站(這裡假設www.huiyuan.com),利用留言功能留下一個釣魚網址,可能管理員就點了進去,跳轉到我構造的網頁後觸發頁面的請求,該請求要增加一個管理員使用者

www.huiyuan.com/account/addUser?username=god&password=123456&role=1

這個時候瀏覽器還攜帶著管理員登入的cookie因此該行為得到執行,我就獲得了一個管理員使用者,當然這麼蠢的網站一般是不存在的,這裡只是打個比方。

防範手段比較常見的是url攜帶token進行校驗,這種手段還可以防禦cookie被篡改,盜用等情況,相當的萬金油。

1.5、暴力破解

直接採用密碼錶暴力破解方式強行登入管理員賬戶,這個沒啥技術含量,開發人員做好驗證碼校驗以及惡意攻擊校驗,頻繁請求IP封禁即可。

2、針對伺服器

2.1、伺服器登入使用者、資料庫登入使用者爆破

黑帽子有多種手段確定後臺資料庫,比如1.3中直接讓後臺報錯,很容易就發現了後臺使用的什麼框架,連得啥庫。又或是使用nmap 等工具直接開掃,目標伺服器暴露3306埠大概率就確定是mysql了。確認了資料庫型別以及埠接下來就是採用密碼錶暴力破解了,很多安全意識差的密碼居然還是root,123456之類的,分分鐘被暴,而掃到後臺伺服器22開放埠也可以確認後臺伺服器使用linux開放ssl登入。所以應對方式有三種:

  • mysql限制訪問IP,這個利用alter user語句就可以做到,root賬戶儘量只給localhost許可權,慎用[email protected]%;
  • 不要使用弱密碼,儘量採用字母+數字+特殊字元的密碼;
  • 伺服器使用放暴力破解服務,可以針對非法訪問惡意操作進行鎖IP防禦。

2.2、伺服器埠漏洞

通過nmap很容易掃描到伺服器暴露的埠,比如139埠外露,就有大量的手段可以滲透:

net use \ip\ipcContentnbsp;”” /user:administrator

所以應對手段也很簡單,開啟防火牆,且只開放有需要的埠,敏感埠如139,445不要外露。

2.3、作業系統漏洞

雖然大部分公司都採用linux作為伺服器,相對安全得多,但是還是有不少公司(至少博主見過挺多的)還在使用windows server,大量的漏洞讓服務岌岌可危,應對方式也很簡單粗暴,該打的補丁就打,不要偷懶。

2.4、木馬植入

這個就是黑客直接通過向伺服器種植木馬,開啟後門,取得伺服器控制權,應對方式主要以下三點:
1、不要用伺服器訪問亂七八糟的網站(尤其是公司伺服器在國外的,不要想著借來翻牆了,別作死),下載亂七八糟的東西;
2、實體機的移動外設接入前注意防毒;
3、伺服器安裝相應安全產品,定期查殺木馬,定期更新漏洞補丁;
4、防火牆注意開啟,相應埠注意配置。

做到以上幾點,基本上中級以下的黑客是進不來了,就算是中高階的黑客也得費一番功夫。當然,如果公司伺服器資料涉及資產非常高,還是建議老老實實找安全公司護鏢。

相關推薦

伺服器防禦基礎常見攻擊手段以及應對方式

前言 網際網路世界魚龍混雜,我們的網站放在internet上除了網站使用者和會員會造訪,還會有一群覬覦網站利益伺服器功能的人在暗中觀察,抓住機會找到漏洞就把網站一舉拿下,從而盜取資料或是利用伺服器資源作為礦機等等,因此伺服器防禦也是不可忽略不可輕視的一方面。

Web常見攻擊與預防方式

DoS(Denial of Service), 即拒絕服務,造成遠端伺服器拒絕服務的行為被稱為DoS攻擊 XSS

php網站開發常見攻擊以及解決方案

PHP網站建設中常見的安全威脅包括:SQL 注入、操縱 GET 和 POST 變數、緩衝區溢位攻擊、跨站點指令碼攻擊、瀏覽器內的資料操縱和遠端表單提交。 1、防止SQL注入攻擊 在 SQL 注入攻擊 中,使用者通過操縱表單或 GET 查詢字串,將資訊新增到資料庫查詢中

Python發送郵件常見郵件內容

t對象 3.6 idt serve ttl dddd python tdi tls Python發送郵件(常見四種郵件內容) 轉載 2017年03月03日 17:17:04 轉自:http://lizhenliang.blog.51cto.com/7876557

【轉】【Python】Python發送郵件常見郵件內容

.cn .com pytho html 常見 body gpo 詳細 tle 感謝:夢琪小生的《【轉】【Python】Python發送郵件(常見四種郵件內容)》 裏面詳細介紹了Python中發送郵件的方法,以供自己參考【轉】【Python】Python發送郵件(常見四種郵件

不可不知!4常見的黑客攻擊手段

安全知識 不同 但是 執行 檢索 使用 cdn 惡作劇 事情   在計算機安全方面,黑客是專註於計算機和網絡系統安全機制的人。今天給大家揭秘4種常見的計算機攻擊手段,讓大家更好了解計算機安全知識。 特洛伊木馬   一個特洛伊木馬是,這似乎是做一件事情,但實際上做一套程序。它

分析電腦死機的常見原因,以及對應的解決方法

似的 幹凈 積累 很多 四種 針對 自己 直接 無法開機 很多的電腦用戶都遇到過各種各樣的電腦故障,例如花屏、黑屏、又或者是電腦無法開機、死機等等都是比較常見的故障,為了修好電腦,我們今天就來了解下,當電腦經常死機,我們用什麽方法解決呢?下面就跟隨小編一起來看下吧。造成電腦

常見的網站攻擊手段防禦方法

target 層疊樣 web get aik span xss攻擊 跨站 bsp XSS攻擊 XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,XSS是一種在

程式設計基礎36 關於排序總結

1,冒泡,選擇,插入排序 #include<cstdio> #include<algorithm> using namespace std; const int max_n = 5; int random_arr[max_n]; void bubbleSort(int a

模運算附加資料型別的資料範圍判斷-hdu3123

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=3123 預備知識點: (a+b)%m=[(a%m)+(b%m)]%m(a*b)%m=[(a%m)*(b%m)]%m所以(0!+1!+2!+.....+n!)%m=[(0!%m+1!%m)%m+(1!%m)*(2

常見瀏覽器相容性問題與解決方案

瀏覽器相容問題一:不同瀏覽器的標籤預設的外補丁和內補丁不同 問題症狀:隨便寫幾個標籤,不加樣式控制的情況下,各自的margin 和padding差異較大。 碰到頻率:100% 解決方案:CSS裡    *

遠端連線伺服器上的oracle資料庫方法

第一種情況:   若oracle伺服器裝在本機上,那就不多說了,連線只是使用者名稱和密碼的問題了。不過要注意環境變數%ORACLE_HOME%/network/admin/是否設定。  第二種情況:   本機未安裝oracle伺服器,也未安裝oracle客戶端。但是安裝了pl

java 常見傳送http請求案例

<span style="font-family: Arial, Helvetica, sans-serif;">import java.io.BufferedReader;</span> import java.io.FileOutputS

【SQL注入技巧拓展】————3、SQL注入防禦與繞過的姿勢

本文章主要以後端PHP和MySQL資料庫為例,參考了多篇文章後的集合性文章。 前言 本文章主要以後端PHP和MySQL資料庫為例,參考了多篇文章後的集合性文章,歡迎大家提出個人見解,互促成長。 一、 PHP幾種防禦姿勢 1. 關閉錯誤提示 說明:PHP配置檔案php.ini

關於兩個伺服器資料庫之間的資料方法實踐

以前資料庫和環境相關的都是開發之前都是開發LEADER 搞定了,今天自己搞本地資料庫做測試,由於表比較多,資料比較多, 所以在用了很多種資料同步的方法,現在總結下下面幾種方法的感受 1.通過轉儲SQL 檔案,通過轉儲表結構和資料SQL 檔案的方式 ,然後匯入到本地的資料庫    缺點:

Jfinal開發時,404常見問題及解決辦法

  報404錯誤時,有2種可能,一是html檔案沒找到,二是Action沒找到,歸結到底是路徑不對,或路徑對了,檔名或包名不符,特別注意,路徑名大小寫一定要一致!路徑名大小寫一定要一致!路徑名大小寫一定要一致!    1、先把Config,注意路由,如**.Controll

Jersey使用總結一jersey初步使用和簡單post請求引數傳遞,String方式,不含物件操作

首先說明一下,jersey是幹什麼的呢,我個人的理解就是類似於一種webservice技術或框架 jersey-rest為service端,其它的jersey請求為客戶端,客戶端傳送一個請求(帶參或不帶參)呼叫service端的方法,方法返回結果給客戶端。 如以下使用步奏

伺服器請求資料時不同的傳參方式

向伺服器請求資料時,不同的傳參方式也是決定是否順利請求回資料的決定因素之一根據伺服器的響應方式,客戶端的提交形式有大致有以下幾種:1.payload方式:payload是一種以JSON格式進行資料傳輸的一種方式,在我們請求的headers裡設定content-type:app

ajax的常見寫法以及用法

一、服務端資料格式1.自定義po類package com.hbut.ssm.po; /** * pojo類 * */ public class Children { private Stri

常見排序演算法的C++描述

首先看一下幾種常見排序的特性 插入排序 void insertSort(vector<int> & arr) { int sz = arr.size();