今天到黑防站上去看看文章,可能出于“职业”习惯,看到?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注入黑客防线网站实例分析相关推荐

  1. inurl+:php?id,实操:SQL注入国外xx网站

    原标题:实操:SQL注入国外xx网站 来自公众号:孑蝉 前言: 学了SQL注入一段时间了,也在顺利通关过墨者靶场.不过,靶场哪有真实网站好玩? 何为sql注入? SQL注入就是SQL+注入,不清楚可以 ...

  2. SQL注入 | 黑客入门篇(如何绕过密码登陆账号)

    SQL注入详解 什么是SQL注入 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击, 而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登陆甚至篡改数据库. SQL注入 ...

  3. 实操:sql注入国外xx网站

    作者丨程橙橙 来源丨孑蝉(jiechan-aci) 前言: 学了sql注入一段时间了,也在顺利通关过墨者靶场.不过,靶场哪有真实网站好玩? 何为sql注入? sql注入就是sql+注入,不清楚可以百度 ...

  4. sql注入 练手网站_新手渗透测试训练营——SQL注入

    学习渗透测试,一定要掌握各种漏洞的检测和利用方法.今天我们分析一下dvwa环境中sql注入从低级到高级的渗透步骤. 手动挖掘Sql注入,首先要发现注入点.以low级别为例,发现一个可以输入内容的文本框 ...

  5. python sql注入脚本_python打造一个分析网站SQL注入的脚本

    1 importrequests,re,time,os2 from tqdm importtqdm3 from bs4 importBeautifulSoup4 defzhuru():5 global ...

  6. sql注入 练手网站_靶场sql注入练手----sqlmap篇(纯手打)

    绝大数情况下,管理员的账号密码都在admin表里 查询字段名 构造 ?id=1 and 1=2 union select 1,column_name from information_schema.c ...

  7. sql 注入神器sqlmap 源码分析之调试sqlmap

    为什么80%的码农都做不了架构师?>>>    相信大家平时 用sqlmap 命令,比如 python sqlmap.py -u"https://team.oschina. ...

  8. 如何防止网站被SQL注入攻击之java网站安全部署

    SQL注入攻击(SQL injection)是目前网站安全以及服务器安全层面上是最具有攻击性,危害性较高,被黑客利用最多的一个漏洞,基本上针对于网站代码,包括JAVA JSP PHP ASP apac ...

  9. 网站漏洞修复方案防止SQL注入攻击漏洞

    SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...

最新文章

  1. 用python解“超速判断”题
  2. android开发岗_android应用开发
  3. 银行家算法java代码
  4. iOS学习——Socket
  5. 您如何获得JavaScript时间戳?
  6. (转)《精通比特币》原码分析:公钥、私钥、比特币地址
  7. 在C语言中系统将stdin,咨询关于c语言中getc(stdin)。怎么办?
  8. Clickhouse MergeTree系列(Replacing、Summing等)表引擎使用说明
  9. 初试 Kubernetes 暴漏服务类型之 Nginx Ingress
  10. 计算机英语格式怎么写,26个英文字母,正确的书写格式,孩子真的会吗?
  11. Soul网关发布里程碑的2.3.0版本抢先看
  12. php 打开word显示无法打开文件,word无法打开文件,因为内容有误怎么办
  13. 高性能Java代码的最佳实践
  14. 【raspberrypi】树莓派官方7寸屏入门指南
  15. 聊一聊JAVA指针压缩的实现原理(图文并茂,让你秒懂)
  16. ColorMatrix 5*5颜色矩阵
  17. 如何删除流氓软件?流氓软件删除后还是自动安装怎么办?
  18. java毕业设计旧物置换网站mybatis+源码+调试部署+系统+数据库+lw
  19. 4大主流CPU处理器技术架构
  20. 编写Android app更新模块遇到的问题分析与总结

热门文章

  1. 设置Spyder的整个界面为暗色配色(全部为dark theme,不仅仅Syntax coloring为暗色背景)
  2. 组态王弹出服务器正在运行中,组态王常见问题集锦(二)
  3. CCF CSP 202109-3 脉冲神经网络
  4. C/C++ 栈的应用:表达式求值
  5. python学习—伍—字典
  6. WiFi分销多开版v5.0.0
  7. u盘装linux sas,巧用U盘八步安装Linux系统
  8. 一些常见的机器学习模型
  9. 由被WebInspect攻击引发的php header()使用问题
  10. mysql删除索引是否锁表_percona-toolkit在线添加删除mysql索引、字段(不锁表)