SQL注入攻擊技術(一)--原理解析


准備環境

win2003虛擬機 需要安裝SQL Server2008

一、原理

注入產生的原因是接受相關參數未經處理直接帶入數據庫查詢操作(注入攻擊屬於服務端的攻擊,因為它攻擊的是服務器里面的數據庫,xss是客戶端的攻擊)

注入最終與數據庫,與腳本、平台無關

二、or漏洞解析(判斷有無注入點的辦法:)

1.單引號

2. 1=1(-1=-1,3=3),有些把1=1或2=2加入黑名單了,但是咱們可以試試別的,如     3=3.-3=-3;

Name和 password 是沒有經過任何處理,直接拿前端傳入的數據,這樣拼接的SQL會存在注入漏洞。(帳戶:yuan 123)

 

 

 

 

 

現在我們來分析一下:'or 1=1--(--注釋的意思)為什么能登錄系統,原因有如下:

 

1)、SELECT * FROM admin WHERE Name=''or 1=1 首先看這條查詢語句,查詢所有來自admin表的數據,條件name為空或者1=1,這兩個條件只要一個滿足就為真, Name=''or 1=1 現在1=1就是真而且是沒任何作用的真,那么最終數據庫執行的語句相當於 select * from Admin

(2)、因為Name值中輸入了“--”注釋符,后面語句被省略而登錄成功。(常常的手法:前面加上'; ' (分號,用於結束前一條語句),后邊加上'--' (用於注釋后邊的語句))

(3)、不同的程序萬能密碼也是不一樣的,如ASP的萬能密碼是'or'='or' PHP的萬能密碼是'or 1=1/* (如果在登陸窗口輸入錯誤的語法出現報錯一般說明存在sql注入)詳細請看: http://chengkers.lofter.com/post/14c64b_379726

三、找注入點:

也就是大型網站可能與數據庫交互的地方:

1.登錄的地方:用戶名和密碼一定是保存在數據庫里面的

2.更新的地方:例如修改密碼,一定會把密碼帶入到數據庫中

3.注冊賬號的地方:賬號密碼都會保存在數據庫中

4.留言板

 

注入可能出現在哪個地方:

http頭、cookies、referee、user、agent、post提交數據包的地方等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM