SQL注入黑客防线网站实例分析

免费源码 2025-06-10 17:53www.dzhlxh.cn免费源码

黑防站点时的一次独特经历

今天,我浏览了黑防站上的文章。出于职业习惯,当我在页面

当我尝试添加①and 1=1和②and 1=2时,服务器提示错误,并且似乎已经过滤了非法提交。IIS也关闭了错误提示。当添加③单引号’时,同样出现了错误提示。这个错误提示与前两个明显不同,前两个错误提示会显示黑客防线的Logo,而后者则是一个空白的错误提示页。

面对这种我从未遇到过的特殊情况,我开始了深入的思考。从程序设计的角度,如果使用的是类似cint的函数,那么三种测试方法应该产生完全相同的错误提示。这里的不同提示让我怀疑是否存在部分语句过滤。很可能的情况是,cint语句不小心被放在了SQL语句的后面,导致在SQL语句通过后,后面的语句出现错误。

尽管还不能完全确定实际的程序是如何编写的,但我确信这是一个潜在的注入点。

根据我撰写的《SQL注入漏洞全接触》,下一步是判断数据库类型。由于错误提示被屏蔽,我只能通过系统表测试来探测。在输入特定语句后,我了解到数据库很可能是Access。

接下来,我尝试探测如admin这样的表是否存在,并猜测其中可能包含username和password字段。原以为这会是简单的Ascii解码猜解任务,然而实际的操作却远比我预想得复杂。传统的Ascii对比中,无论条件是否成立,语句都是可以正确执行的。但在这个页面上,无论结果如何,都只显示一个Logo然后报错,这使得判断变得困难。

经过半个钟头的苦思冥想,我终于找到了一种方法让SQL语句有条件的报错。这个特殊的语句是这样子的:如果username首字母的ASCII码大于96,则选择数字1;否则选择输出字符串username。然后比较这两个值的大小。通过这样的方式,我可以根据错误提示来判断语句是否成立,从而逐步缩小范围,最终得出username和password的值。

最终,我成功解码了用户名和密码:username为bright,password为mingtian。这一过程中所需的智慧和技巧让我对自己感到自豪。

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板