-
1 # JAVA程式設計師
-
2 # 頭號駭客
網路攻防,一個是攻,一個是防
為什麼在網路攻防裡資料庫重要?為什麼我們要學資料庫?
下面我從攻擊方角度和防守方角度分別來詮釋學習資料庫的重要性
首先我們看看,
資料庫是什麼?
資料庫是“按照資料結構來組織、儲存和管理資料的倉庫”。是一個長期儲存在計算機內的、有組織的、有共享的、統一管理的資料集合。資料庫是以一定方式儲存在一起、能與多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合,可視為的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料進行新增、查詢、更新、刪除等操作。簡單點說就是網站、應用系統等儲存各類資訊的一個“倉庫”,作為管理者你可以對這些資訊進行管理,包括增刪改查等,
如果一致那麼密碼正確允許登入,
你修改密碼就相當於修改了資料庫某一項的值,
你就相當於普通使用者,而資料庫管理員則擁有更高的許可權,不同的管理員也有不同的許可權,但一般來說是可以對所有普通使用者進行管理操作了。
那為什麼資料庫如此重要?
上面我也說了,一般情況下,一個管理員是可以管理所有普通使用者資料的,
而且這些資料庫管理員是可以執行作業系統指令的,
所以,如果拿到資料庫管理員許可權,那我就相當於獲得了所有資料,然後再透過資料庫執行作業系統指令,進一步控制電腦伺服器,這就是資料庫為什麼如此重要的原因了!
實際上如果是真正做黑產的人,不考慮內網擴散其他伺服器的情況下,獲得資料庫裡面的敏感資料得到的收益是遠遠大於獲取一個肉雞的收益的。(肉雞:留下後門可隨時控制的電腦)
從攻擊角度來說
首先,我們來想一下,駭客攻擊的目的是什麼?
不就是控制目標伺服器或者拿取資料嗎?
如果最基本的資料庫原理都不會,指令都不會,就算給你資料庫介面你如何獲取資料?
而實際攻擊過程中,由於網站應用系統的不同,以及資料庫的不同,各自可能存在的漏洞不同,我們會存在各式各類的複雜情況,所以實際上我們需要學習的更多
攻擊資料庫以大家最常聽見的SQL注入來說,你需要學習
SQL注入原理、聯合注入、注入型別、別名提升許可權、讀取檔案、html錨點、Mysql布林注入、延時注入、別名講解、MYSQL-BUG注入、MYSQL函式報錯、修復SQL注入、判斷網站是否存在注入、寬位元組注入、多語句注入、Values注入、Delete注入、UPdate型注入、注入常用函式、防火牆、其它資料庫注入等等!以上只是部分注入技能,你學會了過後不代表你就能利用漏洞獲取資料了,就像你只是剛剛學會了走路而已了,
實際注入過程中還會遇到防護措施阻攔,包括資料庫、網站系統本身的防護、關鍵字過濾等,以及web防火牆等,你還要學習如何繞過它們,才有可能真正獲取到資料!
也就是說你不僅要學會走路,還得學會跑,還得會跨欄,你才可能真正到達終點!
從防守角度來說
作為防守者,尤其是你想要做一個優秀的防守者,保護你的資料不被駭客拿到,那麼同樣的,你也需要了解剛才所說的一些資料庫的攻擊方式,資料庫原理等等,而且你還要學習更多防繞過方式!
因為你只有明確知道了如何攻擊,你才真正知道如何防禦!
就像我們房子防禦小偷一樣,小偷只需要一個窗戶就能進來,而我們為了不讓小偷進來,我們會看好門,看好窗等所有小偷有可能進來的地方!
回覆列表
網路攻防的目的是什麼?網路攻擊的目的主要還是透過某種手段獲取資料(比如賬號和密碼),修改資料(代表錢的數字等),而資料是放在資料庫中的,所以說對於學習網路攻擊的人來說學習資料庫很有必要,比如常見的攻擊方式就有sql注入,利用sql語法的邏輯進行獲取資料庫許可權和資料庫的資料。當然了網路攻擊的方式有很多種,有時候也不一定用的到資料庫知識,不同的攻擊方式用到的知識也是不一樣的,比如前端的知識,網路協議的知識,要看你更加傾向於哪方面的的攻擊,不過對於網路攻擊者或是網路防護者肯定是會的越多越好,只有知識越全面越能進行各種方式的攻擊或是進行各方面的防護。
資料庫有很多種,有關係型資料庫,有非關係型資料庫,不過語法還是大同小異,資料庫是用來儲存資料的,重要性不言而喻,無論出於什麼目的,學習下資料庫還是非常有必要的。