SQL注入黑客防线网站实例分析
黑防站点时的一次独特经历
今天,我浏览了黑防站上的文章。出于职业习惯,当我在页面
当我尝试添加①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。这一过程中所需的智慧和技巧让我对自己感到自豪。
网站源码
- SQL注入黑客防线网站实例分析
- debian 9.4 安装教程 linux系统debian9.4图文详细安装步
- 全部行货 21款ThinkPad T400型号查询
- InDesign CS6图片怎么制作成对页效果-
- 保留原装系统轻松搞定HP本本分区
- 利用HTML、CSS 实现带表情的评论框的制作教程
- GTX 1050 MAX-Q吃鸡卡不卡 小米笔记本Pro GTX实战绝地
- 帮助你快速发现有价值域名的一些工具
- 笔记本怎么创建Intel RAID
- 你必须要知道的几个CSS技巧
- Win10怎么关闭自带杀毒软件?2招彻底关闭Windows
- 电话卡实名制这么久 这次规定算史上最严
- htnl基础知识之网页页面的初步了解
- 网站设计效果体验 之七种不同的色系
- Win10 Mobile预览版15047更新修复改进内容大全
- win10系统运行提示0x80070005错误的解决办法