1. 程式人生 > >解析數據庫以及SQL註入,大佬勿噴

解析數據庫以及SQL註入,大佬勿噴

min 數據結構 了解 sql語句 我只 md5 服務 pass 進行

1.什麽是數據庫?

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。數據庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統都在各個方面得到了廣泛的應用。

2.什麽是SQL註入?

所謂SQL註入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令註入到後臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。[1]比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL註入式攻擊

3.怎麽進行SQL註入?

sql繞過用戶名和密碼,我只講最簡單的一種方式,讓大家懂了原理就好

後臺從前臺獲取用戶名和密碼,

假設賬號的字段為user,密碼的字段為password,表名為admin

查詢用戶名和密碼的SQL語句為

[php] view plaincopyprint?

<span style="font-size: 14px;">select * from admin where user=$userand passswod=$password </span>

我們從前臺$_POST兩個數據

[php] view plaincopyprint?

<span style="font-size: 14px;">$user=$_POST[‘user‘]

$password=$_POST[‘password‘]</span>

則SQL語句執行的時候,查詢語句就為

[php] view plaincopyprint?

<span style="font-size: 14px;">select * from admin where user="or a=‘a‘"and passswod="or a=‘a‘"</span>

這樣執行下來,這個語句的結果就為真,就繞過了用戶名和密碼的限制

當然,這樣的方法有些不好的限制,例如我們分開查詢用戶名和密碼,或者密碼使用MD5加密,這種方法就失效了,不過可以試驗別的方法,這個簡單的例子是為了大家了解什麽是SQL註入。

解析數據庫以及SQL註入,大佬勿噴