1. 程式人生 > >SQL注入滲透某網路安全公司的網站全過程

SQL注入滲透某網路安全公司的網站全過程

前言:寫這篇文章不是為了告訴大家如何去做入侵,而是希望提醒大家:“入侵是偶然的,但安全並不是必然的”,不要疏忽運作上的一些小細節。
筆者一直都有經常性地到一些安全方面的網站瞎逛的習慣的,最近因為一次機緣巧合之下通過連結來到廣州某個頗有名氣的網路安全公司的網站。說實在的,這個網站好象挺多元化的,提供軟體下載之餘,還有自己的論壇(嘿嘿,介面做得還真不賴嘛,不知道安全性如何呢?)。出於對其安全操守的好奇,小神決定義務為其做個的初步的“安全滲透測試”。開始時只是拿一些綜合性的網路漏洞掃描工具(X-scan3.0、Nmap、Retina等等)進行資訊掃描,然後做個結果篩選,結果只查到對方開了TCP80埠(也就是說他們的伺服器只提供了正常的HTTP服務),且無任何典型的漏洞....沒戲了,對方畢竟還是一間有些知名度的企業嘛(因為這篇文章的重點並不在此,所以用網路漏洞掃描器作資訊掃描這個步驟我就不在這裡多作說明了)。就這樣放棄了嗎?沒那麼容易...恰好小神最近在整理SQL Injection(SQL注入攻擊)方面的資料,既然現在有機會就再“勉為其難”地幫它測試一下吧:P
------------------------------------------------------------------------------------------
提示:
問:什麼是SQL注入?
答:這種攻擊的要訣在於將SQL的查詢/行為命令通過‘嵌入’的方式放入合法的HTTP提交請求中從而達到攻擊者的某種意圖。現在很多的動態網頁都會從該網頁使用者的請求中得到某些引數,然後動態的構成SQL請求發給資料庫的。舉個例子,當有某個使用者需要通過網頁上的使用者登陸(使用者身份驗證)時,動態網頁會將該使用者提交上來的使用者名稱與密碼加進SQL詢問請求發給資料庫,用於確認該使用者提交的身份驗證資訊是否有效。在SQL注入攻擊的角度看來,這樣可以使我們在傳送SQL請求時通過修改使用者名稱與/或密碼值的‘領域’區來達到攻擊的目的。

SQL注入技術的更多相關資訊請看:
http://demonalex.nease.net/sql_injection/walkthrough.txt
------------------------------------------------------------------------------------------
首先是下載系統,隨便抽一個工具的下載地址:
http://該安全公司的網址/某目錄/download/open.asp?id=3444
------------------------------------------------------------------------------------------
附錄:這裡筆者用中文代替了某些敏感資訊,還請各位見諒哦。
------------------------------------------------------------------------------------------
http://該安全公司的網址/某目錄/download/open.asp?id=3444'
先測試一下對方有沒有過濾'(單引號)...

示:
問:如何確認一個網站有SQL注入缺陷呢?
答:首先先加入某些特殊的字元標記,輸入如:
hi' or 1=1--
尋找一些登陸頁面,在其登陸ID與密碼輸入處,或URL中輸入:
- Login: hi' or 1=1--
- Pass: hi' or 1=1--
- http://duck/index.htm?id=hi' or 1=1--
如果想以‘隱藏’的方式進行此類測試,你可以把該HTML網頁從網站上下載至本地硬碟,修改其隱藏部分的值,如:
〈FORM action=http://duck/Search/search.asp method=post〉
〈input type=hidden name=A value="hi' or 1=1--"〉
〈/FORM〉
如果閣下是幸運的話估計現在已經可以不需要帳號與密碼而‘成功登陸’了。
------------------------------------------------------------------------------------------
再試試下面的url,看看能否返回正常的頁面...
http://該安全公司的網址/某目錄/download/open.asp?id=3444"
http://該安全公司的網址/某目錄/download/open.asp?id=3444' or 1=1--
http://該安全公司的網址/某目錄/download/open.asp?id=3444" or 1=1--
http://該安全公司的網址/某目錄/download/open.asp?id=3444' or 'a'='a
http://該安全公司的網址/某目錄/download/open.asp?id=3444" or "a"="a
------------------------------------------------------------------------------------------
提示:
問:為什麼要特意使用' or 1=1--來做測試呢?
答:讓我們來看看其他例子中使用'or 1=1--的重要性吧。有別於正常的登陸方式,使用這樣的登陸方式可能可以得到正常登陸中不能得到的某些特殊資訊。用一個連結中得到的ASP頁來打比方:
http://duck/index.htm?category=food
在上面這條URL中,'category'是一個變數名,而'food'是賦予該變數的值。為了做到這些(連結成功),這個ASP必須包含以下相關的程式碼(下面也是我們為了演示這個實驗所寫的程式碼):
v_cat = request("category")
sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'"
set rs=conn.execute(sqlstr)
正如我們所看到的,變數值將會預先處理然後賦值於'v_cat',也就是說該SQL語句將會變為:
SELECT * FROM product WHERE PCategory='food'
這個請求將會返回通過WHERE條件比較後得到的結果,在這個例子中也就是'food'了。現在設想一下如果我們把該URL改成這樣的話:
http://duck/index.htm?category=food' or 1=1--
現在我們的變數v_cat的值就等同於"food' or 1=1--"了,現在如果我們要重新代入那條SQL請求的話,那條SQL請求將會是:
SELECT * FROM product WHERE PCategory='food' or 1=1--'
現在這個請求將會從product表中選取每一條資訊而並不會去理會PCategory是否等於'food'。至於結尾部分的那兩條'--'(破折號)則用於‘告訴’MS SQL SERVER忽略結尾最後的那個'(單引號)。有的時候也可以使用'#'(井號)來代替'--'(雙破折號)在這裡的用法。無論如何,如果對方不是一臺SQL伺服器(這裡指的是MS SQL SERVER),或者你不能使用簡單的方法去忽略最後的那個單引號的話,你可以嘗試:
' or 'a'='a
這樣的話整個SQL請求將會變為:
SELECT * FROM product WHERE PCategory='food' or 'a'='a'
它也會返回相同的結果。
根據實際情況,SQL注入請求是可以有多種動態變化的可能性的:
' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
------------------------------------------------------------------------------------------
都是返回“HTTP 500 - 內部伺服器錯誤”,看來是又失敗了,不怕,我們還有希望...此時的希望只能全部寄託在論壇上了...

循序漸進,首先找來一條帖子的url(這一步筆者挑了:http://該安全公司的網址/論壇目錄/list.asp?ltid=14這條URL)重複剛剛的行為:
http://該安全公司的網址/論壇目錄/list.asp?ltid=14'
http://該安全公司的網址/論壇目錄/list.asp?ltid=14"
http://該安全公司的網址/論壇目錄/list.asp?ltid=14' or 1=1--
http://該安全公司的網址/論壇目錄/list.asp?ltid=14" or 1=1--
http://該安全公司的網址/論壇目錄/list.asp?ltid=14' or 'a'='a
http://該安全公司的網址/論壇目錄/list.asp?ltid=14" or "a"="a
不過看來還是在吃白果...(如下圖所示)

除了位址列,不要忘了還有論壇首頁的登陸框:

在“使用者名稱:”區域中輸入:
網***' or 1=1--
然後在“密碼:”區域中隨便輸入幾個密碼看看吧:P
------------------------------------------------------------------------------------------
附錄:“網***”為我們在論壇首頁中看到的那個版主帳號。
------------------------------------------------------------------------------------------

還是不行,試試在密碼區域進行注入攻擊吧...具體操作:
在“使用者名稱:”中輸入:
“網***”
然後在“密碼:”中輸入:
' or 1=1--
(提交後得到下圖)

fail...再用:
' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
切換了幾次,還是不行,看來真的是“堅不可摧”了...
“風繼續吹,不忍遠離...”小神的MP3裡哼著‘哥哥’張國榮的歌,難道就這樣離開嗎?到論壇的首
頁裡再逛一圈吧....一掃眼,還真道靈光,注意一下論壇登陸區域上方的小連結,看到了吧?第三條
連結是什麼呢?

單擊後跳出如下圖所示的登陸視窗:

首先在“論壇:”這一攔選中相應的版面(這裡筆者挑了第一個版面“安全工具”),然後再重新嘗試一下:
帳號: 網***' or 1=1--
密碼: 任意密碼

不行,再試試:
帳號: 網***
密碼: ' or 1=1--
......
......
小神的手顫了一下,只因“有顏色的介面”出來了:

開始時以為是假象,連忙點選“進入後臺>>>”...

這次看來是真的了,點選其中一條帖子再測試一下:

(看到了吧?有“刪除”按鈕了也...其實我們可以做的還不只這些...PS:小神可是個好孩子哦^_^)
寫到這裡,也算是有個交代了吧?!^@@^
整篇文章的主旨也不過就是介紹瞭如何簡單地利用SQL注入攻擊滲透論壇吧,其實現在再談SQL注
入也是老生常談了,但想不到連知名的網路安全公司也有這樣的漏洞,歸根結底就是人們對安全意識
的不重視而引起的,這篇文章告訴了我們:不要忽視運作中的一些小細節。

相關推薦

SQL注入滲透網路安全公司網站全過程

前言:寫這篇文章不是為了告訴大家如何去做入侵,而是希望提醒大家:“入侵是偶然的,但安全並不是必然的”,不要疏忽運作上的一些小細節。筆者一直都有經常性地到一些安全方面的網站瞎逛的習慣的,最近因為一次機緣巧合之下通過連結來到廣州某個頗有名氣的網路安全公司的網站。說實在的,這個網

為增強資料保護能力,Facebook或收購網路安全公司

在科技界遇到難以解決的問題時,往往都會通過花錢收購來處理,這種做法自然也是最近頻出負面訊息的Facebook的一個選擇。在經歷了多次資料洩露事件後,據The Information報道,這家這社交平臺正在加緊收購一家大型網路安全公司,同時還向多家同類型公司發出併購邀約。除了防止產

Burpsuite與sqlmap結合進行sql注入滲透測試

SQL注入漏洞測試網站:http://testasp.vulnweb.com/ 2.分別配置burpsuite的代理和火狐瀏覽器的代理伺服器: 設定burp的proxy--Intercept為Intercept on即擷取資料模式,然後在漏洞測試網站的登入頁面填入使

國內幾大網路安全公司介紹

中國國內的安全市場進入“戰國時期”,啟明星辰、綠盟、天融信、安氏、億陽、聯想網禦、華為等戰國七雄擁有雄厚的客戶資源和資金基礎,帳前皆有勇猛善戰之士,漸漸開始統領國內安全市場的潮流和聲音,基本上每個公開市場的專案都有其角逐的身影。 啟明星辰:擁有雄厚的政府關係,自主開發的ID

kali學習筆記——實戰sqlmap入侵網站(存在sql注入漏洞)

前言 直接上實戰,原理在下面會簡單介紹,有需要詳細教程的到這裡下載: https://download.csdn.net/download/u013819875/10503430 首先宣告我也只是一個網路愛好者,菜鳥水平(不過php,sql都是學過,有一些基礎的),寫這篇文章權當學

《11招玩轉網路安全》之第四招:low級別的DVWA SQL注入

以DVWA為例,進行手工注入,幫助讀者瞭解注入原理和過程。 1、啟動docker,並在終端中執行命令: docker ps -a docker start LocalDVWA docker ps 執行結果如圖4-19所示。 圖4-19  啟動DVWA 2、在

網路安全知識之SQL注入

所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不

網路安全SQL注入、XML注入、JSON注入和CRLF注入科普文

目錄 SQL注入 一些尋找SQL漏洞的方法 防禦SQL注入 SQL注入相關的優秀部落格 XML注入 什麼是XML注入 預防XML注入

php對前臺提交的表單資料做安全處理(防SQL注入和XSS攻擊等)

/** * 防sql注入字串轉義 * @param $content 要轉義內容 * @return array|string */ public static function escapeString($content) { $pa

滲透測試:SQL注入攻擊(ASP)

分類: 滲透測試 SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。隨著B/S模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。

Web安全漏洞——sql注入

1.原理 注入攻擊的本質,是把使用者輸入的資料當成程式碼執行。兩個關鍵條件:一是使用者能夠控制輸入;二是原本程式要執行的程式碼,拼接了使用者輸入的資料。當攻擊者傳送的sql語句被sql直譯器執行,通過執行這些惡意語句欺騙資料庫執行,導致資料庫資訊洩露。 2.分類 按注入點

繞過安全狗進行sql注入(MySQL)

看我如何一步一步繞過安全狗 前言 前幾天滲透了一個站,由於沒有做好善後工作被管理員發現了,再次訪問那個站的時候,管理員已經刪了大馬,裝上了網站安全狗(我估計大馬應該是安全狗刪除的,畢竟那個管理員真的太懶了,我的小馬還在,並且居然菜刀還可以連線),為了給這個管理員增強點安全防護意識

怎麼修復網站漏洞之metinfo遠端SQL注入漏洞修補

2018年11月23日SINE網站安全檢測平臺,檢測到MetInfo最新版本爆出高危漏洞,危害性較大,影響目前MetInfo 5.3版本到最新的 MetInfo 6.1.3版本,該網站漏洞產生的主要原因是MetInfo的上傳程式碼裡的引數值沒有進行安全過濾,導致上傳路徑這裡進行偽造路徑,並可以插入惡意的程式碼

web安全(4)-- sql注入

1.1 漏洞描述     所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表

WEB安全-SQL注入

什麼是SQL注入 所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意的)SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存

網路安全、Web安全滲透測試之筆經面經總結(二)

轉載地址:https://www.cnblogs.com/christychang/p/6593163.html   這篇文章涉及的知識點有如下幾方面: 1.SSL Strip(SSp)攻擊到底是什麼? 2.中間人攻擊——ARP欺騙的原理、實戰及防禦 3會話劫持原理 4.CC攻擊 5.

網路安全、Web安全滲透測試之筆經面經總結(一)

轉載地址:https://www.cnblogs.com/christychang/p/6041012.html   本篇文章總結涉及以下幾個方面: 對稱加密非對稱加密? 什麼是同源策略? cookie存在哪裡?可以開啟嗎 xss如何盜取cookie? tcp、udp的區別及tcp三次

北京網站建設哪家公司好?北京新起點網路專業的網站建設推廣公司

整站優化與單純的關鍵詞優化的不同。整站優化除了考慮排名外,更注重點選率和網站轉換率。它並不以北京網站建設推廣某個關鍵詞在某個搜尋引擎上的排名為得失,而是注重所有高質量相關關鍵詞在所有搜尋引擎的整體表現。整站優化比關鍵詞競價更有效。與關鍵詞競價不同,北京網站建設推廣哪家好?整站優化可以讓貴網站通過更多的高質量關

安全測試中sql注入測試思路

在找好需要測試的功能點之後,針對每種功能點(引數),sql注入測試一般遵循下面步驟: 1. 測試注入型別,數字型or字元型 如果引數中直接包含字母,那麼直接可以判斷是字元型引數,如id=4a。 若引數是數字通常可以考慮輸入表示式來判斷,如id=6,可嘗試輸入id=

Web安全之:SQL注入

條件 使用者可以接觸並修改傳送到伺服器的內容 URL判斷 and 1=1 and 1=2 依據返回資訊判斷 整形 ’ 同上 字元型判斷 -1 / +1 回顯上個頁面 整形 and sleep(12)