MySQL注入原理
SQL,叫做結(jié)構(gòu)化的查詢語言,所謂的SQL注入,就是把SQL命令插入到web表單提交或輸入域名頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。具體來說,它就是利用現(xiàn)有程序,將(惡意的)SQL命令注入到后臺數(shù)據(jù)庫引擎執(zhí)行的能力,它可以通過在web表單中輸入(惡意)SQL語句得到一個(gè)存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫,而不是按照設(shè)計(jì)者意圖去執(zhí)行SQL語句。
一、SQL注入的危害
1、 數(shù)據(jù)庫信息泄露:數(shù)據(jù)庫中存放用戶的信息隱私數(shù)據(jù)的泄露。
2、 服務(wù)器被人遠(yuǎn)程控制,被安裝后門。
那么我們怎么樣去尋找一個(gè)網(wǎng)站它是否存在這樣的一個(gè)注入點(diǎn)呢?
二、MySQL注入檢查
1、 搭建MySQL注入練習(xí)環(huán)境
1) 先搭建phpstudy(我們直接去下載應(yīng)用就行了)
2) 將靶場在網(wǎng)站根路徑下解壓,解壓過后,修改數(shù)據(jù)庫連接配置文件。Sqli-labs-mastersql-connectionsdb-creds.inc,修改數(shù)據(jù)庫連接賬號密碼為root/root。
3) 我們下載好靶場以后,打開我們的phpstudy,我們打開后先啟動(dòng),如果兩個(gè)成綠色那就證明沒問題。
找到我們解壓過后的靶場文件
點(diǎn)進(jìn)去找到下面這個(gè)文件
把他的賬號密碼改成root 就行了而這個(gè)文件呢也是php去鏈接mysql 數(shù)據(jù)庫的配置文件。存放著數(shù)據(jù)庫的賬號密碼,主機(jī)和數(shù)據(jù)庫名,我們只需要看下賬號密碼是否是修改的那個(gè)就行了。
然后我們需要ctrl+s保存起來,重啟我們的phpstudy
重啟過后我們就可以去靶場去了,我們用到的瀏覽器是火狐46.0打包版的瀏覽器。如果小伙伴們沒有的話,可以私聊我給你們工具包。
4) 訪問靶場,點(diǎn)擊第一個(gè)去安裝這個(gè)庫,創(chuàng)建表,把數(shù)據(jù)導(dǎo)入進(jìn)去,點(diǎn)擊進(jìn)去就好了,這樣我們的環(huán)境就搭建好了。
2、 判斷某URL是否存在注入(字符型注入)
|url:http://127.0.0.1/sqli-labs-master/Less-1/?Id=1
|后端sql :$sql|="SELECT*FROM users WHERE id=$id LIMIT 0,1";
A:一般在傳參后面加一個(gè)單引號或者雙引號,報(bào)錯(cuò)或者沒有返回都是正常的頁面,那么大概率是存在注入的
B:進(jìn)一步檢查是否存在注入。
3、 數(shù)字型注入
1) Url:http://127.0.0.1/sqli-labs-masteter/less-2/?id=1
2) 后端sql:$sql|="SELECT*FROM users WHERE id=$id LIMIT 0,1";
4、 搜索型注入
5、 搜索型注入判斷方式
6、搜索型注入判斷語句
以上就是sql注入的判斷方式和基本的三種類型,后面我們會根據(jù)mysql注入的方式來對注入手法分類,大家不要混淆了。
如何找尋注入點(diǎn),在burpsuite中抓包,分析每一個(gè)請求的傳參數(shù),任何與數(shù)據(jù)庫有交互的地方都有可能存在注入,所以記錄在http history中的目標(biāo)網(wǎng)站每一個(gè)請求,在有參數(shù)的地方都可以進(jìn)行SQL注入的檢測。