欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

假是真时真是假——or注入教程

来源:转载 作者:佚名 时间:2008-12-01 TAG: 我要投稿
樱花浪子:跟ADN刚好相反 不用的是很多东东都过虑ADN,没有想到OR,算是一种思路吧



by  落叶纷飞
   记得一年前火狐有一位朋友问,如果一个站过滤了and和“'”的话 ,改怎么注入啊?当时我随口说了句“or注入”,后来又一次看贴的时候,看到他问我该怎么利用呢?我就写了几个简单的语句给他,叫他自己变换,他很感激我,还说网上没有这种方法。我到网上查了查,还真没有or注入专题呢(or 1=1除外),呵呵,所以,一年后的今天,就有了这篇文章。
   我们用雷霆购物系统做or注入演示。我们先用or 1=1和or 1=2来测试是否存在注入点,我们先来看正常页面的面貌,如图1。我们现在用or 1=1测试是否存在注入漏洞,如图2。返回的是另外一个页面,我们再来测试or 1=2,如图3。返回的是正常的页面,说明猜测正确的时候是错误,猜测错误的时候是正常,这就是真正的“假是真时真是假”,比lake2大哥哥的IP欺骗更经典哦,呵呵。
   我们来构造测试语句:“vpro.asp?id=1 or exists(select * from admin)”,返回错误页面,说明存在admin表,我们来换一个表试试!“vpro.asp?id=1 or exists(select * from n0h4ck)”,如图4,说明不存在n0h4ck这个表。哦?有朋友应该要问了,为什么不返回or 1=2时的正常页面呢?这个问题嘛,我也不知道,呵呵 ,不过我知道一个定理,就是只要返回的页面不是or 1=1的页面,就表示猜测表示错误的(我把它称之为“邓哥定律”,呵呵)。我们继续来,构造语句“vpro.asp?id=1 or exists(select admin from admin)”,返回or 1=1的页面,说明admin表存在admin字段。“vpro.asp?id=1 or exists(select padd from admin)”,返回or 1=2的页面,说明admin表不存在padd字段。
   我们现在开始猜测数据了,“vpro.asp?id=1 or (select mid(admin,1,1) from admin)='n'”返回or 1=2的页面,说明admin表admin字段的第一个数据的第一个字符不是“n”,我们再来“vpro.asp?id=1 or (select mid(admin,1,1) from admin)='a'”返回or 1=1的页面,说明说明admin表admin字段的第一个数据的第一个字符是“a”,我们第一个会想到什么呢?当然是“admin”啦,我们用left函数确定一下,“vpro.asp?id=1 or (select left(admin,5) from admin)='admin'”猜测正确,的确是admin,好了,后面的话就不用我说了吧!具体可以看我的动画。
   最后来说几句,这个方法是当时研究突破“通用防注系统”时想到的,但是没测试成功,当时我还测试到了用“%”来割开字符,可能比EST的那个大哥哥还要早哦,不过那时也没突破到防注系统,没想到居然可以突破VIF防火墙。不说了,再说别人就说我这个小P孩在吹牛的了,呵呵。就到这里了,我们7月再见吧。我考上了重点,会再回来给大家写文章的。大家快祈祷我考上重点吧。如果大家还有什么问题请到nohack论坛找我。
【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载