Web攻擊原理(腳本攻擊)

攻擊分類

  • 腳本攻擊(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字樣

Web攻擊原理(腳本攻擊)

xxx是登錄用戶名字

如果不對輸入內容校驗,則輸入

xxx

Web攻擊原理(腳本攻擊)

效果如下圖:

Web攻擊原理(腳本攻擊)

XSS危害:

  1. 竊取Cookie
  2. 竊取個人隱私

XSS檢測和防禦:一般在Web請求階段檢測,檢測方法有

  • 特徵方法
  • 特徵+script語法方法

所以平時要樹立安全意識,超長的URL一般都比較可疑,不要隨便亂點。


分享到:


相關文章: