iT邦幫忙

0

再次求教,資安學習

小弟剛踏入資安領域,極度菜
近期關注OWASP上的SQL injection與XSS
爬過文得知兩位已經榜上有名多年

目前想像的學習順序是
HTML>CSS>JavaScript>ASP.NET>???(之類的?)

爬些文章大略知道普遍受害對象,及受害者被攻擊後的損失概況
自學的困境是
網路上有文章分享基本測試漏洞的方法
但大部分的語法我還看不明白
也不知道為何那樣子測就能得到有洞還是沒洞
不想單純當個script kiddie(不想被吉阿!!)

希望明白漏洞的原理以及漏洞如何被利用
以及從client端輸入資料後,資料會由哪些設備與程式經手處理過,以及資料最後的去向
想請問前輩們,應該具有的預備知識以及學習方向與順序?

目前手邊的書有
wireshark
google hacking 精實技法
深入淺出 JavaScript 程式設計
MySQL新手入門超級手冊
Kali Linux滲透測試工具
資安專家的nmap與NSE網路診斷與掃描技巧大公開
Metasploitable:白帽駭客新兵訓練營

wwx iT邦好手 1 級 ‧ 2018-11-05 08:23:50 檢舉
更多資安漏洞來自於業者自身政策,例如google帳戶開始會通知1年沒登入的要登入確認仍使用中...這個環節就會被拿來釣魚,開了這個例會上當的人就變多了,所以出包次數大大增加
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
Ray
iT邦大神 1 級 ‧ 2018-11-04 23:43:00

先把程式語法學精了, 才能看得懂漏洞在哪裡...
建議在程式領域至少有 5 年以上的專案開發經驗...

不然你得像我一樣, 從沒寫過專案, 但能看懂語法...

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2018-11-05 08:00:29 檢舉

雷神真的很不願意承認自己會程式。XD

raytracy
小弟還真本末倒置
我對資訊業是從網路協定開始感興趣的
程式的部分在大學有接觸但都沒深入鑽研
蜻蜓點水過一些C,python,java,javascript,asp.net(C#)
沒獨自開發過專案
目前得知工作內容是要閱讀一些資安設備產出的log
並整理和紀錄成文件
也被問到相關知識
所以對於自己如何學習儲備這些知識有點發愁

.

asqweff11 iT邦新手 5 級 ‧ 2018-11-05 16:38:42 檢舉

練習寫一個簡易的網站模擬環境,主要要包含後端資料庫,先用網路上的方法自己駭自己,然後再找方法修補這個漏洞,過程中就會學到很多了

3
froce
iT邦大師 1 級 ‧ 2018-11-05 08:43:05

幾個建議:
1.你說的這兩個都是很基礎的洞,熟悉 web 開發的話應該不難理解,你該先從無到有建一個漏洞百出的網站來自己測試。
2.資安不只有技術方面,有一半以上的工作是管理方面的問題。

SQL injection
其實wiki已經說的很清楚了。
今天我有兩個欄位,給使用者輸入帳號(userName)及密碼(passWord)。
假設我驗證的SQL這樣寫:

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"

我是駭客,我要打你網站,就在帳號及密碼欄位,輸入「"1' OR '1'='1"」(其實第一個1可以是任何字元)。
這樣的話,你的驗證SQL就變成:

strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"

注意(name = '1' OR '1'='1')這裡,'1'='1'永遠成立,所以(name = '1' OR true)永遠成立,也就是說SQL查詢字串等效於下面:

strSQL = "SELECT * FROM users WHERE true and true;"

這樣where的查詢就廢了。
我成功的略過你的帳號密碼檢查,得到你 users 資料表所有的資料了。

XSS的簡單手法也類似,假設我有個搜尋欄位,搜尋完會把結果列出,並且回傳"您搜尋了「」,結果共幾筆"。
正常的行為應該是:我輸入「google」,我回傳的字串會是"您搜尋了「google」,結果共幾筆"
XSS重點不在搜尋結果,而是如果你都不處理html的逸出字元,攻擊者可以輸入像下面的攻擊碼。

google<img src="javascript:alert('XSS')">

傳回的結果會是:

"您搜尋了「google<img src="javascript:alert('你被XSS了')">」,結果共幾筆"

沒處理逸出字元的話,瀏覽器會將其解釋為正常的 DOM,並且執行img那邊指令碼,結果就是跳出一個視窗來警告你"你被XSS了"。

這兩個手法的處理方法也很簡單,就是前後端驗證、正確處理逸出字元和SQL搜尋字串的設計。
不過這些沒對網站有個基本理解,只看書是很難體會的。
駭客的攻擊手法、對象也不會只限於網站本體。
所以資安技術不僅 web 要懂,基本上對於整個系統都要有所認識,程式只是基本。

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2018-11-05 08:59:48 檢舉

另外像鐵人賽的這篇:
https://ithelp.ithome.com.tw/users/20107714/ironman/1769
也很精彩,不僅是程式語言,也要有資安和 web 架構的觀念。

優悠 iT邦新手 3 級 ‧ 2018-11-05 10:31:01 檢舉

幫補充:要用匿名參數來解決

froce iT邦大師 1 級 ‧ 2018-11-05 10:53:23 檢舉

感謝補充

感謝force大(tag不到你XD)
SQL injection的部分
我先自首從未寫過網頁或網站專案
您貼的程式碼我目前是看得懂橘字意思(才剛開始惡補SQL =.=)
請問中間穿插的白字和綠字是哪個語言的語法?(真心不知)
是網頁程式去調用SQL語法並去資料庫讀出資料的意思嗎?
還請您展現包容力與忍耐力了(先跪)

froce iT邦大師 1 級 ‧ 2018-11-05 13:25:20 檢舉

html

謎底已經解開了:你tag的名稱打錯!不是force,是froce/images/emoticon/emoticon01.gif

0
Darwin Watterson
iT邦好手 1 級 ‧ 2018-11-05 09:17:46

OWASP ZAP 掃完會出報告,我都是掃完後依照報告建議改!
(NESSUS與FORTIFY也差不多,都是依據報告見招拆招!)

弱掃報告範例:
https://ithelp.ithome.com.tw/upload/images/20181105/20109107L7ci9c8ofT.png

修正完的弱掃結果:
https://ithelp.ithome.com.tw/upload/images/20181105/201091070QaRb0f3H1.png

而且一般會要求弱掃的專案,也不僅限於OWASP ZAP這套!
同一專案各家弱掃軟體掃出來的結果也不全然相同!
更何況如果遇到不知道轉過幾手公司的專案,有些一改反而舊的部分某些功能
就掛了!這時就變成責任歸屬的業務協調領域!

同意雷大的看法,『看懂報告描述的漏洞與報告中的建議比較重要』
然後依據報告建議見招拆招。

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2018-11-05 11:30:44 檢舉

基本上看懂報告描述的漏洞就已經需要一段時間的修練了,要能見招拆招...尤其系統又不是自己寫,這經驗要非常豐富才行啊。

就如雷大說的:「差不多5年以上吧!」,還有就是Google檢索關鍵字的功力。

darwin0616
目前得知工作上會需要經手資安設備的log
並整理後做成文件
應該是會有前輩在旁指點
但還是希望自己先有些預備知識就是了
目前有自己裝了一台kali虛擬機
裡面內裝了數十個軟體通通都還不會用==
得靠自己爬文啃文慢慢磨了

先訓練自己的英文能力吧!真心不騙!

froce iT邦大師 1 級 ‧ 2018-11-05 15:16:09 檢舉

工作上有前輩指教算不錯了。
我啥都沒有,剛接的時候連資料庫帳密都沒有。
現在還得自己想辦法跟openvas上的漏洞修補作戰...
明年要自己想辦法生套看起來像的ISMS。Orz

0
CyberSerge
iT邦好手 1 級 ‧ 2018-11-05 10:06:35

可以用webgoat建立LAB試試。

但是真要深入研究這些漏洞,對於該種程式語言還是要有熟悉度。

Sergeyau
我先自首沒寫過程式和網站專案(毆小力點)
目前就是認知到相關知識不足
您推薦的lab我趕緊來玩玩看

閱讀一些資安設備產出的log
並整理和紀錄成文件

這工作內容和你問的OWASP漏洞不一樣喔,除非你也負責看漏洞報告提出改善?

資安的領域很廣,想樣樣精通需要花時間學習。沒寫過程式和網站專案的話,我同意前輩們的建議先從能讀懂漏洞報告和修補建議開始,作為PM和負責寫程式的團隊溝通,請他們注意目前的重大威脅,確認有訂定計畫測試、修補。

0
SoL
iT邦新手 4 級 ‧ 2018-11-05 22:44:33

是說你上面寫到你手邊有的書:

目前手邊的書有
wireshark
google hacking 精實技法
深入淺出 JavaScript 程式設計
MySQL新手入門超級手冊
Kali Linux滲透測試工具
資安專家的nmap與NSE網路診斷與掃描技巧大公開
Metasploitable:白帽駭客新兵訓練營

你都有看完嘛?

我覺得如果你都有看完並且跟著實作,應該不少東西會知道

然後也會知道下一步大概要走哪裡,問問自己要學什麼

然後樓上也有幾位大大推薦的東西,看你回復好像不知道的樣子@@

我記得你寫的你手邊有的書裡面,應該有提到呀@@ (( 哪個我就不說了

沒批評的意思,只是我覺得市面上有的資安書都看一看

裡面多少會附有一些連結,再跟著那些連結你又會挖到其他學習資源

這樣慢慢往下學習吧

然後你的敘述有寫:

自學的困境是
網路上有文章分享基本測試漏洞的方法
但大部分的語法我還看不明白
也不知道為何那樣子測就能得到有洞還是沒洞
不想單純當個script kiddie(不想被吉阿!!)

希望明白漏洞的原理以及漏洞如何被利用
以及從client端輸入資料後,資料會由哪些設備與程式經手處理過,以及資料最後的去向

我覺得一般大家都是自學比較多,真的有強者帶的應該算少數

你的問題我覺得就是不懂就上網查,反正看到後面就會懂,

在找資料的過程會再挖到其他東西,這樣慢慢就會學得很多


一般大家口中的強者,他們也很常遇到問題,也只能自己上網找,
畢竟應該周遭也沒人可以問...

我只有開頭前2本是已經看一段時間
3~7都是昨天才下單訂的書
看書都是看到一個瓶頸就放下然後去看其他書
實作的部分真的是弱項
進度慢慢地做

我要發表回答

立即登入回答