算是系统的重新学一遍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一起使用并且返回当前数据库内容的第一列。
网友评论