小弟剛踏入資安領域,極度菜
近期關注OWASP上的SQL injection與XSS
爬過文得知兩位已經榜上有名多年
目前想像的學習順序是
HTML>CSS>JavaScript>ASP.NET>???(之類的?)
爬些文章大略知道普遍受害對象,及受害者被攻擊後的損失概況
自學的困境是
網路上有文章分享基本測試漏洞的方法
但大部分的語法我還看不明白
也不知道為何那樣子測就能得到有洞還是沒洞
不想單純當個script kiddie(不想被吉阿!!)
希望明白漏洞的原理以及漏洞如何被利用
以及從client端輸入資料後,資料會由哪些設備與程式經手處理過,以及資料最後的去向
想請問前輩們,應該具有的預備知識以及學習方向與順序?
目前手邊的書有
wireshark
google hacking 精實技法
深入淺出 JavaScript 程式設計
MySQL新手入門超級手冊
Kali Linux滲透測試工具
資安專家的nmap與NSE網路診斷與掃描技巧大公開
Metasploitable:白帽駭客新兵訓練營
先把程式語法學精了, 才能看得懂漏洞在哪裡...
建議在程式領域至少有 5 年以上的專案開發經驗...
不然你得像我一樣, 從沒寫過專案, 但能看懂語法...
raytracy
小弟還真本末倒置
我對資訊業是從網路協定開始感興趣的
程式的部分在大學有接觸但都沒深入鑽研
蜻蜓點水過一些C,python,java,javascript,asp.net(C#)
沒獨自開發過專案
目前得知工作內容是要閱讀一些資安設備產出的log
並整理和紀錄成文件
也被問到相關知識
所以對於自己如何學習儲備這些知識有點發愁
.
練習寫一個簡易的網站模擬環境,主要要包含後端資料庫,先用網路上的方法自己駭自己,然後再找方法修補這個漏洞,過程中就會學到很多了
幾個建議:
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 要懂,基本上對於整個系統都要有所認識,程式只是基本。
另外像鐵人賽的這篇:
https://ithelp.ithome.com.tw/users/20107714/ironman/1769
也很精彩,不僅是程式語言,也要有資安和 web 架構的觀念。
幫補充:要用匿名參數來解決
感謝補充
OWASP ZAP 掃完會出報告,我都是掃完後依照報告建議改!
(NESSUS與FORTIFY也差不多,都是依據報告見招拆招!)
弱掃報告範例:
修正完的弱掃結果:
而且一般會要求弱掃的專案,也不僅限於OWASP ZAP這套!
同一專案各家弱掃軟體掃出來的結果也不全然相同!
更何況如果遇到不知道轉過幾手公司的專案
,有些一改反而舊的部分某些功能
就掛了!這時就變成責任歸屬的業務協調領域!
同意雷大
的看法,『看懂報告描述的漏洞與報告中的建議比較重要』
。
然後依據報告建議見招拆招。
darwin0616
目前得知工作上會需要經手資安設備的log
並整理後做成文件
應該是會有前輩在旁指點
但還是希望自己先有些預備知識就是了
目前有自己裝了一台kali虛擬機
裡面內裝了數十個軟體通通都還不會用==
得靠自己爬文啃文慢慢磨了
先訓練自己的英文能力吧!真心不騙!
工作上有前輩指教算不錯了。
我啥都沒有,剛接的時候連資料庫帳密都沒有。
現在還得自己想辦法跟openvas上的漏洞修補作戰...
明年要自己想辦法生套看起來像的ISMS。Orz
可以用webgoat建立LAB試試。
但是真要深入研究這些漏洞,對於該種程式語言還是要有熟悉度。
Sergeyau
我先自首沒寫過程式和網站專案(毆小力點)
目前就是認知到相關知識不足
您推薦的lab我趕緊來玩玩看
閱讀一些資安設備產出的log
並整理和紀錄成文件
這工作內容和你問的OWASP漏洞不一樣喔,除非你也負責看漏洞報告提出改善?
資安的領域很廣,想樣樣精通需要花時間學習。沒寫過程式和網站專案的話,我同意前輩們的建議先從能讀懂漏洞報告和修補建議開始,作為PM和負責寫程式的團隊溝通,請他們注意目前的重大威脅,確認有訂定計畫測試、修補。
是說你上面寫到你手邊有的書:
目前手邊的書有
wireshark
google hacking 精實技法
深入淺出 JavaScript 程式設計
MySQL新手入門超級手冊
Kali Linux滲透測試工具
資安專家的nmap與NSE網路診斷與掃描技巧大公開
Metasploitable:白帽駭客新兵訓練營
你都有看完嘛?
我覺得如果你都有看完並且跟著實作,應該不少東西會知道
然後也會知道下一步大概要走哪裡,問問自己要學什麼
然後樓上也有幾位大大推薦的東西,看你回復好像不知道的樣子@@
我記得你寫的你手邊有的書裡面,應該有提到呀@@ (( 哪個我就不說了
沒批評的意思,只是我覺得市面上有的資安書都看一看
裡面多少會附有一些連結,再跟著那些連結你又會挖到其他學習資源
這樣慢慢往下學習吧
然後你的敘述有寫:
自學的困境是
網路上有文章分享基本測試漏洞的方法
但大部分的語法我還看不明白
也不知道為何那樣子測就能得到有洞還是沒洞
不想單純當個script kiddie(不想被吉阿!!)
希望明白漏洞的原理以及漏洞如何被利用
以及從client端輸入資料後,資料會由哪些設備與程式經手處理過,以及資料最後的去向
我覺得一般大家都是自學比較多,真的有強者帶的應該算少數
你的問題我覺得就是不懂就上網查,反正看到後面就會懂,
在找資料的過程會再挖到其他東西,這樣慢慢就會學得很多
一般大家口中的強者,他們也很常遇到問題,也只能自己上網找,
畢竟應該周遭也沒人可以問...