我的黑客生活
我的黑客生活
我是黑客吗?没有人给我回答 我还是学生.还要完成我的学业 注意: 本人可以回答问题 第一个免费,第二个免费,第三个收费,以后可以考虑打折!
临川一中不是人待的地方!!
博客信息
博主:DataBaseOwner 
栏目分类
最新文章
最新评论
标签列表
博客搜索
日志存档
·2009-1 ( 1 )
·2008-10 ( 4 )
·2008-7 ( 4 )
·2008-6 ( 5 )
·2008-5 ( 1 )
·2008-4 ( 3 )
·2008-2 ( 10 )
·2008-1 ( 53 )
友情链接
统计信息
访问:90506 次
今日访问:12次
日志: -161篇
评论: 29 个
留言: 9 个
建站时间: 2008-1-12
博客成员
DataBaseOwner 管 理 员
数字狼 管 理 员
最近访客



扔掉工具 跟我一起学ASP手工注入! (3)
作者:DataBaseOwner 提交日期:2008-1-27 19:27:00 正常| 访问量:1127

7。跨库查询!
 这可能是这篇教程的最后一部分了,对不起大家了,因为我在策划MSSQL注入的教程怎么写的时候,发现了不少问题,我没有搞清楚,所以这些要等我搞清楚后再写,如果现在写出来会误导大家的!所以写完这篇后,我决定深入学习一下MSSQL,学过这个的朋友一定要加我QQ啊!一起交流一下!我的QQ是 1924627!加的时候注明:X档案!学过ASP的也可以加加,呵呵,我最近也在自学ASP~!小菜朋友们也可以加我讨论一些问题,在此说明哦,难的问题我可不会!加的时候表问偶有没有学过这个有没有学过那个,伤自尊的!偶基本上什么也没有学过!呵呵,好了,不多说了。教程开始!
 大家可能都遇到过这种情况!就是在找到注入点的时候,猜不出来表名或者是列名!这个时候可能好多刚接触这方面的小菜就要犯难了,有的还专程到论坛里去问!(我那个时候就问过这种问题,郁闷,被一群SB取笑了!)其实,猜不出来是正常的!既然叫“猜”!当然不能每次都猜中了!工具只会按预先设定好的表名或者列名来猜!如果网站所用的数据库里存在一张工具里没有存着的表名或者列名,那工具就猜不出来喽!MSSQL是用爆的,不是用猜的!这点大家要知道!。大家肯定认为那些猜不出来列或者表的注入点就没有用了吧!其实不然,说它的用处大,也不大,用处小,也不小!为什么这么说呢!因为它有另一个用法!不过这个用法在入侵中不常用,有的时候甚至用不了!什么用法呢?就是跨库查询!相信大家还记的,猜表名的语句是这样的!
and exists(select count(*) from 表),是这样的吧?什么?忘了?去看看前面的教程去!这里我告诉大家,其实from后面可以跟路径的!不过要绝对路径!这个路径指向一个数据库,就可以实现跨库查询!比如吧,有一个数据库的路径是 D:\hack\1.mdb ,我们想要跨库查询它的内容!就要用到这个语句:and exists (select count(*) from D:\hack\1.mdb.admin),大家可能看到了,1.mdb后面跟了“.admin”,这是什么呢!其实admin是这个1.mdb里的一个表!当然,在注入网站的时候,我们是不知道要跨的那个数据库是有哪些表的,所以我们要用这种方法去猜!把admin改成别的表,就可以猜别的表存在不存在了!记的哦!如果刚才我们构造的那个注入语句返回正常的话,就说明1.mdb 这个数据库里存在admin这张表!接着就是猜列!和以前的猜法一样,只不过from后面跟的变了变,这里也给大家写一下吧!其实我更希望大家自己思考,有帮助的!猜列的语句是and (select count(列名) from 数据库路径.表名)>0,知道了吧,就是from后面跟的东东变了变!别的没变!一定要记的,数据库路径后面还要加上一个点和一个表名!这就是简单的跨库查询!可能有朋友要问了,这个有什么用呢!现在我告诉大家,当我们知道了一个对我们有用的数据库的绝对路径,可是不能下载,也没有注入点是连接到这个数据库的,这个时候我们就可以随便找一下注入点,前提是这个注入点连接的数据库和你要跨的数据库在同一服务器上!这个时候我们就可以通过这个注入点来跨库查询那一个数据库的内容!明白了吧!其实也不只这一点用处!大家想想,from后面不是可以跟路径么!这个时候我们可不可以用它来猜服务器上的文件内容呢!当然是可以的,只要把from后面跟的数据库站径改成我们要猜的就可以了。这里来一个例子!
and exists (select count(*) from 路径),就可以了(这里我记的不太清了,应该是这样没错,如果有错的话请告诉我一下!)我们把路径改成
C:\windows\1.c ,(注意:这个c可以是任意的字母!)这个时候如果提示 'c:\windows\a.mdb' 不是一個有效的路徑,就说明不存在c:\windows\这个文件夹!(不要想是不是我写错了或者是忘了找mdb了,没有,等你们自己试验的时候就知道了!)。可是如果提示找不到文件的话呢,说明存在这个文件夹,可是不存在1.mdb这个文件!这个时候可能大家要问了,这样不是只可以猜mdb的数据吗?因为不管在文件名后面加上什么字母,都会自己变成mdb格式的文件来检测!其实可以查询其它的文件格式的。这么写就可以了。把1.c改成1.exe.c就可以查询这个1.exe是不是存在!如果存在的话,就会提示c:\windows\1.exe不是一个有效的数据库文件!(或者有别的不同的提示,反正不会提示找不到文件!)如果提示找不到文件的话,就说明没有这个文件!这样可以大概确定是服务器是什么系统了!如果存在c:\winnt\的话就是2000以,存在c:\windows\ 的话应该就是2003了!好!跨库查询的作用就写到这里!等下我给大家制作一下教程!其实还有一个比较实用的方法。就是只要知道一个列名就可以爆所有列名的值。这个方法用到了联接查询join语句!因为我也没有理解这个方法是什么意思,所以这里就不做介绍了!大家如果想要学的话自己到网上找一下相应的资料!当然,如果哪一天 我理解了的话就再补充给大家!
8。补充!
 在注入的时候,可能没有那么顺利,有的时候程序过滤了这个字符或者过滤了那个。或者干脆用了防注入程序。!或者监控器!这个时候我们就没有办法了吗?不!肯定有的!只不过我们没有发现而已,因为这方面的知识我知道的很少,所以只能给大家一点点的思路!如果谁还有知道的就请补充一下!第一,如果程序过滤了空格,我们可以用/**/来代替,也可以用空格的URL编程%20来代替,最近在论坛里看到了另一种方法,我没有试过!地址是这个:http://www.hackerxfiles.net/viewthread.php?tid=16791&highlight=%E7%A9%BA%E6%A0%BC 大家有时间试一下!第二,过滤了">"或者"<",我们可以用between用代替!有点英语基础的朋友都知道它是什么意思!如果程序过滤了><号的话,就证明我们不可以用以前那种方法猜字符的ASCII码了!这个时候我们可以用between!比如,这里我猜 admin第一位a的ASCII码!以前我们用到的方法是select asc(mid(admin,1,1))>X 这样猜。可是现在过滤了">"
了,我们不能用这个句子了。我们就可以这样select asc(mid(admin,1,1)) between 80 and 100(有点记不清了,如果说错了还靖见谅!)如果返回正常,就说明admin的每一个字符a的ASCII码处在80到100之间,这样我们就一点点的缩小范围!直到猜出ASCII码!第三,如果用了防注入程序,我们就从防注入程序的漏洞下手!以前在网上看过一篇文章,是讲通用防注入程序3。0的漏洞的。地址多少忘了,朋友们自己找一下吧!这方面突破过滤的知识我只知道一点点,不好意思了!
 好了,这次ACCES的手工注入教程算是不圆满的结束了!我会以最快的速度学好MSSQL的,到时候再来给大家写!
 记的哦!多去偶的blog上坐一下!虽然没有什么好东东!欢迎学过ASP、PHP、MSSQL、MYSQL和什么都不懂的小菜加我的QQ一起进步!
 我的QQ 1924627!注:不去偶blog上的别加!加的时候注明X档案!嘻嘻~ 好啦。下次再见喽!
 by wyzhack/九世


#日志日期:2008-1-27 星期日(Sunday) 晴 送小红花 推荐指数:复制链接 举报


登录 | 新人注册>>
输入您的评论:(不支持HTML标签)


验证码
本文所属博客:我的黑客生活
引用地址:


copyright blog.tianya.cn

© 天涯社区