欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

关于sql注入的一些理解

来源:本站整理 作者:咸鱼王01 时间:2017-01-03 TAG: 我要投稿

sql注入是渗透最基础的东西我个人对sql注入的理解就是浏览器提交给服务器端的数据,在服务器端没有进行过滤,并带入数据库查询。要想彻底研究sql注入还得随便写一个页面

代码如下(注释写了好久...)

数据库的数据如下

第一步 判断注入在url后面添加 and 1=1 如果网站正常显示 (如下图)

在url后面添加and 1=2 如果网站不正常显示 (如下图)

那么就能判断该网站存在注入了

判断注入想必大家都能明白 ,而为什么在url 后面添加 and 1=1和 and 1=2 就能判断出是否存在注入呢? 这个才是我们要研究的东西那么我就要从sql语句开始入手这是网站原本的sql语句 SELECT * FROM person where number=1这句话的意思就是说 查询person表里 number字段为 1 的全部信息

如果我们在参数后面 添加 and 1=1 sql语句就会变成SELECT * FROM person where number=1 and 1=1我们把这句话放进数据库查询

还是能查到数据为什么呢??因为person 表里的确有number值为1的数据 并且 1也确实等于1如果我们在参数后面 添加 and 1=2 sql语句就会变成SELECT * FROM person where number=1 and 1=2我们把这句话放进数据库查询

很明显就查不出数据了因为person 表里的确有number值为1的数据 但是 1不等于2呀再看sql语句 SELECT * FROM personwhere number=1 and 1=1这里面的and 就是并且的意思 前面number=1 要成立and 后面的表达式也要成立那么我们把number=1 换成number =8 这样也查询不出来了,因为在person表里没有number=8的数据。

即使 and 后面的表达式1=1成立 可是and 前面的number=8不存在 所以就查询不出数据

Sql注入的第二步就是 拆解字段猜字段的意思就是猜当前表里有多少个字段

显而易见 person表里有三个字段 分别是 number name birthday拆解字段的方法如下:先在网站url后面添加 order by 5 (因为我们知道表里有3个字段。。正常的一个页面应该从20开始猜)127.0.0.1/test.php?a=1 order by 5

页面报错了,说明字段数没有5个,这时我们折半 用 order by 3来试试127.0.0.1/test.php?a=1 order by 3

网页正常显示,我们在用 order by 4来试试127.0.0.1/test.php?a=1 order by 4

哈哈页面报错了,这时 在网站url 后面 添加order by 3网站正常显示在网站url 后面 添加order by 4 网站不正常显示就能判断出该表的字段数就是3。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载