攻擊分類
- 腳本攻擊(SQL注入、XSS)
- 授權和認證(COOK劫持和洩露、CSRF跨站腳本請求偽造)
- 網頁篡改
- 流量攻擊(CC攻擊、惡意爬蟲和掃描)
- 後門類(掛馬、Webshell)
- 盜鏈等
SQL注入
SQl注入就是通過把非法的SQL命令插入到Web表單中或頁面請求查詢字符串中,最終達到欺騙服務器執行惡意的SQL語句的目的。
攻擊對象:數據庫或服務器
攻擊原理:利用輸入校驗不完整等缺陷,使得輸入的數據被作為SQL語句執行
權限和危害:SQL注入可以用數據庫權限來執行各種命令
SQL注入攻擊典型案例:
業務設計的查詢語句:
select * from usrtable where usrname = ‘para1’ and pwd=‘para2’
提交參數 aa’ or 1=1--
效果: select * from usrtable where usrname = ‘aa’ or 1=1--and pwd=‘para2’
在SQL Server中,--是SQL語句的行註釋符
SQL注入檢測與防禦
WAF(WEB應用防火牆)檢測原理
特徵檢測,對SQL語句關鍵字進行特徵匹配,例如select,from,where等
優點:漏報低,可擴展性強
缺點:誤報嚴重,影響用戶正常業務
語法檢測,通過語法分析來判斷是否是SQL注入
優點:精確檢測。
缺點:性能比特徵檢測慢,且如果有漏報要從語法分析來完善,響應慢。
其他注入:操作系統命令注入、XML注入、LDAP注入
注入攻擊的發生都是因為對輸入沒有做詳細的驗證或編碼,導致輸入的數據內容被執行。
xml 注入時可以先試一下 xml 中的一些有特殊作用的字符,好比測試 sql 注入我們可能先會輸入一些單引號雙引號等,測試 xss 時可能先輸入尖括號等符號來大概看一下效果。
XML 被設計為傳輸和存儲數據,其焦點是數據的內容。
HTML 被設計用來顯示數據,其焦點是數據的外觀。
XSS和緩存區溢出,SQL注入攻擊是類似的,最終導致的是輸入的數據被當成命令執行。
具體說,XSS就是利用各種手段,把數據部分的標籤關閉,然後加入各種類型腳本,使得客戶端執行嵌入腳本。
例如首頁,有welcome xxx字樣
xxx是登錄用戶名字
如果不對輸入內容校驗,則輸入
xxx
效果如下圖:
XSS危害:
- 竊取Cookie
- 竊取個人隱私
XSS檢測和防禦:一般在Web請求階段檢測,檢測方法有
- 特徵方法
- 特徵+script語法方法
所以平時要樹立安全意識,超長的URL一般都比較可疑,不要隨便亂點。
閱讀更多 小小網絡人 的文章