在新手入門web安全的時候,sql注入每每是最早上手的一個漏洞,它也是危害至關大的一個漏洞,存在此漏洞的話,將有被脫褲的風險。php
如下全部代碼都是我本身寫的,可能有不美觀,代碼錯誤等等問題,但願你們能夠指正。web
如圖是一個正常的登錄框sql
點擊登錄時,抓包數據庫
這時,直接將其丟入sqlmap中,進行注入檢測segmentfault
能夠看到直接爆出了系統環境、數據庫版本等信息安全
這裏先補充一下前面所用到的代碼函數
login.phpweb安全
logins.php學習
代碼中直接接收了傳來的參數,而後直接帶入查詢數據庫,沒有進行任何的過濾,因此就致使了sql注入的產生。編碼
這裏,只須要將傳入的參數進行過濾,就能夠了,過濾的方法有不少,這裏我使用addslashes()函數來進行過濾。
首先增長一個過濾的函數
而後,在傳入的時候,對變量進行過濾
此時再次sqlmap跑一下
這裏須要注意一個問題,addslashes()函數也是有繞過的方法,因此必定要注意如下問題
1.必定不要使用gbk,會存在寬字節注入
2.在編碼解碼以後,必定要再次進行過濾
3.在使用這個函數以後,必定不要再使用stripslashes()函數
4.若是還要作字符串的替換的話,必定要注意其嚴謹性
文章首發公衆號:無意的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,我的成長的公衆號
掃碼關注便可