SQL注入攻击与防御(第一,二章)

算是系统的重新学一遍SQL了,把细节和运用在熟悉一遍


注入原因: 缺少用户输入验证、数据和控制结构混合在同一传输通道中

返回的错误情况:1.错误直接显示在页面上        2.将sql错误隐藏在web源代码中

     3.检测到错误时跳转到另一个页面    4.返回500或302    5.适当处理错误但返回一个通用的错误页面

四种数据库的常见错误和利用:

1.SqlServer

    将id=1的1换成字符串的话,不加引号的字符串会被认为是列名,从而返回找不到该列的错误

    还可以把字符串转化为整数来产生错误,.aspx?category=bikes' and 1=0/@@version;--   version作为一个除法会把它转化为数字,但当然转化会失败,失败时会显示出变量的内容,version当然也可以替换成别的。由此可以有一种注入,使用having和order by爆字段  举例:bikes' having '1'='1 数据库会要求group by和having一起使用并且返回当前数据库内容的第一列。

你可能感兴趣的:(SQL注入攻击与防御(第一,二章))