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

原创 2004年10月23日 16:09:00
今天到黑防站上去看看文章,可能出于“职业”习惯,看到?classid=1之类的东东就不由自主的想加点什么参数进去。
    当在页面http://www.hacker.com.cn/article/index.asp?classid=3&Nclassid=13加上①and 1=1和②and 1=2,都提示“处理 URL 时服务器上出错。请和系统管理员联络”,看起来象已经过滤了非法提交,IIS也关闭了错误提示,再加上一个③单引号’的时候,也出同样的错误提示,然而明显与前两个错误提示不同,因为前者显示了黑客防线的Logo才提示错误,后者则是一个空白的错误提示页。
    这可是我从来没碰到过的特殊情况,到底能不能注入呢?
    换个角度,从程序员的思路是怎么写这段程序的。首先,如果是用cint之类函数,那三种测试方法错误提示应该是完全一样的;如果没过滤的话,①②的结果应该是不一样的。排除了几种情况,最后觉得极可能是部分语句过滤,出现这种情况很可能是cint语句不小心放到SQL语句的后面,在SQL语句通过后,后面的语句报错。
    虽然还不很确定实际的程序是怎么写的,但可以确定,这确实是一个注入点!
    根据我写的《SQL注入漏洞全接触》,下一步就是判断数据库类型,因为错误提示都被屏蔽,只能通过系统表测试了,输入:
    http://www.hacker.com.cn/article/index.asp?classid=1 and (Select count(1) from sysobjects)>=0
    提示出错,没出现Logo,说明是语句本身有错,极可能是表sysobjects不存在,也就是说数据库是Access,再拿一个Access应有的系统表试试(msysobjects在这个时候派不上用场,因为在Web下没有权限读取,SQL语句同样不能通过,所以,必须换个有权限的表如MSysAccessObjects),果然,出现了黑防的Logo,证实数据库确实是Access。
    接下来的猜解就比较简单了,用(count(1) from admin)>=0测试出admin表存在,表中有username、password字段。本来以为下面就是用最普通的Ascii解码法猜解记录,小Case,没想到,一开始猜解,才发现这是最难啃的一块骨头:传统的Ascii对比中,无论条件是否成立,语句都是可以正确执行的,它是利用ASP的出错而非SQL语句的出错来发现错误的,在这个页面,不管你成不成立,都是显示一个Logo然后报错,根据无法做出判断。
    冥思苦想了半个钟头,终于想出一种方法,让SQL语句有条件的报错,先看看语句:
http://www.hacker.com.cn/article/index.asp?classid=1 and 
(select top 1 iif(asc(mid(username,1,1))>96,1,username) from admin)>0
    写出这个语句的时候,连我自己都好崇拜我自己,哈哈,别吐,解释一下,asc(mid(username,1,1))这个都看得懂,取username第一位的ASCII码,大于96的话,select出数字1,小于等于96的话,select输出字符串username,然后,拿select出的值与0比较。
1与0都是数字型,当ASCII码大于96的时候,SQL语句不会出错;username则是字符型,当ASCII码小于等于96的时候,SQL语句会出错。所以,两种情况的出错提示是不同的,我们可以根据出错提示判断语句是否成立,从而逐步缩小每一位字符的范围,得出username的值。
于是,根据上面所说的方法,得出username的值为:chr(98)+ chr(114)+ chr(105)+ chr(103)+ chr(104)+ chr(116)=bright,password的值为chr(109)+ chr(105)+ chr(110)+ chr(103)+ chr(116)+ chr(105) + chr(97)+ chr(110)=mingtian,解码完成。

Sql注入漏洞的例子

 访问北京宽带 小灵通 页面,具体地址为:http://www.bbn.com.cn/xlt2.htm在用户登陆处,填写相关资料小灵通号:正常应为您自己的小灵通号码,这样您发送一条短信,就收取0.08...
  • cmoremore
  • cmoremore
  • 2004年09月23日 12:17
  • 971

简单网站sql注入

2分钟简单网站注入,利用啊D注入工具
  • a519395243
  • a519395243
  • 2017年08月17日 09:57
  • 708

寻找sql注入的网站的方法

方法一:利用google高级搜索,比如搜索url如.asp?id=9如下所示: (说明:后缀名为php的类似)...
  • u014796999
  • u014796999
  • 2016年11月14日 11:51
  • 2634

本地搭建含有简单sql注入漏洞的网站

本地搭建简单的sql注入漏洞网站 注入过一些有sql注入漏洞的网站,但是自己本地搭建倒还是第一次尝试.... 安装phpstudy 集成了Apache+PHP+MySQL+phpMy...
  • mukami0621
  • mukami0621
  • 2017年12月06日 21:11
  • 413

如何对网站进行SQL注入

在不懂技术的时候,总觉的SQL注入是很牛逼的东西,如何绕过用户名和密码的验证来实现注入呢,写代码时间久了之后,慢慢了解了这个技术,其实不是什么神秘的东西,原理很简单,利用SQL语句本身的逻辑漏洞实现,...
  • gpssmet
  • gpssmet
  • 2012年10月01日 15:38
  • 8885

SQL注入—我是如何一步步攻破一家互联网公司的

最近在研究Web安全相关的知识,特别是SQL注入类的相关知识。接触了一些与SQL注入相关的工具。周末在家闲着无聊,想把平时学的东东结合起来攻击一下身边某个小伙伴去的公司,看看能不能得逞。不试不知道,一...
  • xiongshengwu
  • xiongshengwu
  • 2016年12月16日 18:45
  • 2190

网站入侵工具 SQL注入神器

SQL注入神器
  • qq240263894
  • qq240263894
  • 2017年05月02日 00:37
  • 5688

SQL注入练习平台sqli-labs

你是否在学习SQL注入找不到好的OJ平台,这里介绍sqli-labs项目给你,非常适合SQL注入初学者来这里升级怪兽。...
  • linyt
  • linyt
  • 2016年11月04日 23:17
  • 6809

渗透测试:SQL注入攻击(ASP)

分类: 渗透测试 SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员...
  • FireHell
  • FireHell
  • 2014年11月29日 15:34
  • 3579

用sqlmap验证是否存在sql注入

1.安装python https://www.python.org/downloads/ 使用python 2.x即可 2.step by step安装完后添加path ...
  • yzf913214
  • yzf913214
  • 2015年12月05日 17:54
  • 817
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL注入黑客防线网站实例分析
举报原因:
原因补充:

(最多只允许输入30个字)