博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql注入点检测
阅读量:3960 次
发布时间:2019-05-24

本文共 1637 字,大约阅读时间需要 5 分钟。

前言

判断某个链接是否存在SQL注入,可以通过对其传入的可控参数进行简单的构造,通过服务端返回的内容来判断有无注入。

实验环境: sqli-libs

常用的判断方式

其他类型

构造测试                            预期结果                                 变种a'                      //触发错误,返回数据库错误                              a' or '1'='1            //永真条件,返回所有记录                   a') or ('1'=1   a' or '1'='2            //空条件,返回原来相同结果                  a') or ('1'=2a' and '1'='2           //永假条件,不返回记录                      a') and ('1'='2

数字类型

构造测试                            预期结果                                 变种'                       //触发错误,返回数据库错误                  1+1                     //返回原来相同的结果                           3-11+0                     //返回原来相同的结果                     1 or 1=1                //永真条件,返回所有记录                        1) or (1=11 or 1=2                //空条件,返回原来相同的结果                     1) or (1=21 and 1=2               //永假条件,不返回记录                          1) and (1=2

数字型

网站中源码的sql语句为:“SELECT * FROM users WHERE id=$id LIMIT 0,1”;

在这里插入图片描述我们主要看这个: ‘’ LIMIT 0,1’
除去两边最外面的’ 只剩下: ’ LIMIT 0,1
还剩下的’ 为我们自己加上去的 可以判断源码中的id这个参数在并入sql语句中并没有用引号包含

字符型

参数被’'包含

网站中源码的sql语句为:“SELECT * FROM users WHERE id=’$id’ LIMIT 0,1”;

在这里插入图片描述我们主要看: ‘‘1’’ LIMIT 0,1’
除去最外侧的’ ’ 只剩下 ‘1’’ LIMIT 0,1
由于我们输入的参数为1’ 除去我们自己输入的’ 剩下 ‘1’ LIMIT
至此我们可以判断出这个参数在sql中是用’ '包含的

参数被(’ ')包含

网站中源码的sql语句为:“SELECT * FROM users WHERE id=(’$id’) LIMIT 0,1”;

在这里插入图片描述我们主要看: ‘‘1’’) LIMIT 0,1’
除去最外侧的’ ’ 只剩下 ‘1’’) LIMIT 0,1
再除去我们输入的参数 ’ 剩下 ‘1’) LIMIT 0,1
至此我们可以判断这个参数是由 (’ ')包含的

参数被(" ")包含

网站中源码的sql语句为:“SELECT * FROM users WHERE id=(”$id") LIMIT 0,1";

这里我们无论是输入’ 或者是) 都不会报错
在这里插入图片描述原因在sql语句中参数用" "包含 如果是数字加字符串比如1’ 或者 1) 都会自动转换为 1
在这里插入图片描述那么我们如何判断呢

我们可以用\ 或者"

\是转义字符可以将" 转换成字符串而不是引用参数的引号
在这里插入图片描述

转载地址:http://luhzi.baihongyu.com/

你可能感兴趣的文章
Linux下安装Mysql数据库开发环境
查看>>
Linux用户及用户组添加和删除操作
查看>>
通用 Makefile 的编写方法以及多目录 makefile 写法
查看>>
C++的4种智能指针剖析使用
查看>>
RPC框架实现之容灾策略
查看>>
Docker私库
查看>>
hdu——1106排序(重定向)
查看>>
hdu——1556Color the ball(树状数组)
查看>>
hdu——1541Stars(树状数组)
查看>>
快速幂的精简代码
查看>>
求大数乘方的前n位数字(对数加快速幂)
查看>>
hdu——2602Bone Collector(第一类背包问题)
查看>>
hdu——1711Number Sequence(kmp专练)
查看>>
strstr函数和find函数的异同
查看>>
Java的反射
查看>>
HTTP请求之POST与GET区别
查看>>
SSM结合Redis
查看>>
优化数据库的八种方法
查看>>
Java Web服务收到请求时线程的情况以及session情况
查看>>
SSM配置文件信息加密实现
查看>>