服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

dirtysea 发表于 2008-11-24 19:09:27

全新的注入点检测方法

现在有很多防注入程序屏蔽了 and、1=1、1=2 类似这样的关键字,使用这样的方法有时不能探测到注入点了。<BR>那么是否有新的方法能够探测注入点呢? 经过一段时间的研究,发现了更好的方法。哈哈,特此共享一下。<BR><BR>现在假设有一个新闻页面,URL 是 <A title=http://gzkb.goomoo.cn/news.asp?id=123, href="http://gzkb.goomoo.cn/news.asp?id=123," target=_blank>http://gzkb.goomoo.cn/news.asp?id=123,</A><BR>1. 在浏览器中打开,可以看到一个正常的新闻页面; <BR>2. 在URL地址后面加上-1,URL变成:<A title=http://gzkb.goomoo.cn/news.asp?id=123-1,如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在 href="http://gzkb.goomoo.cn/news.asp?id=123-1,如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在" target=_blank>http://gzkb.goomoo.cn/news.asp?id=123-1,如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在</A> URL地址后面加上 -0,URL变成 <A title=http://gzkb.goomoo.cn/news.asp?id=123-0,返回的页面和前面的页面相同,加上-1,返回错误页面,则也表示存在注入漏洞,是数字型的。 href="http://gzkb.goomoo.cn/news.asp?id=123-0,返回的页面和前面的页面相同,加上-1,返回错误页面,则也表示存在注入漏洞,是数字型的。" target=_blank>http://gzkb.goomoo.cn/news.asp?id=123-0,返回的页面和前面的页面相同,加上-1,返回错误页面,则也表示存在注入漏洞,是数字型的。</A><BR>否则:<BR>3. 在URL的地址后面加上'%2B',URL地址变为:<A title=http://gzkb.goomoo.cn/news.asp?id=123&amp;#39;%2B&amp;#39;,返回的页面和1同;加上&amp;#39;2%2B&amp;#39;asdf,URL地址变为:http://gzkb.goomoo.cn/news.asp?id=123&amp;#39;%2Basdf,返回的页面和1不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。 href="http://gzkb.goomoo.cn/news.asp?id=123&amp;#39;%2B&amp;39;,返回的页面和1同;加上&amp;39;2%2B&amp;39;asdf,URL地址变为:http://gzkb.goomoo.cn/news.asp?id=123&amp;39;%2Basdf,返回的页面和1不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。" target=_blank>http://gzkb.goomoo.cn/news.asp?id=123&amp;#39;%2B&amp;#39;,返回的页面和1同;加上&amp;#39;2%2B&amp;#39;asdf,URL地址变为:http://gzkb.goomoo.cn/news.asp?id=123&amp;#39;%2Basdf,返回的页面和1不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。</A><BR>为什么这样可以呢?<BR>我们可以从程序的角度来考虑一下。程序员的这条语句大致应该是这样的:<BR>select * from news where id=123<BR>当我们在后面加上 -1 后,语句变为<BR>select * from news where id=123-1<BR>SQL服务器在执行这条语句时会进行运算,实际执行的是:<BR>select * from news where id=122<BR>这样选出来的就是另外一条新闻记录了。如果该记录存在,就是另一则新闻;否则会显示记录不存在,或者出错。呵呵。 这也同时表示程序未对输入的数据进行过滤,存在数值型的注入漏洞。<BR>如果 SQL 语句时这样的:<BR>select * from news where id='123'<BR>那么我们在后面加上 '%2B' 之后,语句变为 <BR>select * from news where id='123'+''<BR>%2B 是 + 的URL编码。 这样之后,SQL服务器实际执行的是:<BR>select * from news where id='123'<BR>会返回同样的页面。<BR>加上 '%2B'asdf 之后,语句变为<BR>select * from news where id='123'+'asdf'<BR>实际执行的是:<BR>select * from news where id='123asdf'<BR>返回页面不存在,或者显错。 这就表示有文本型的注入漏洞。

新疆人胡胡 发表于 2006-6-15 23:25:32

re:全新的注入点检测方法

这种做法应当支持...可惜军队的领导人不知道能不能支持........
页: [1]
查看完整版本: 全新的注入点检测方法