sql注入 1-1_ 基于报错注入
1.判断是否存在报错注入
通过 id =1
可以看到服务器返回正常页面
通过 id=1 and 1=1
通过 id=1 and 1=2
服务器也返回正常
通过 id=1’ 提交
可以看到服务器报错
通过 ’ 1’’ limit0,1 ’
可以推测出sql语句中提交的参数为:select * from 某数据库 where id =‘id’
–加 空格(注释符) 闭合前面的单引号
服务器返回正常页面,说明url中带入sql语句
由此推断存在sql注入
2.漏洞利用
既然存在漏洞
我们就使用order by 来检查存在几个字段
切记用 --空格闭合前面的单引号否则会报错
通过对比发现输入字段3时正常,字段4报错,则可以确定存在3个字段。
使用联合查询
此时需要修改id的参数为任意字符或0,这样就可以判断出存在注入的点在1还是2还是3
以下是修改前
修改后
可以看到报出存在注入的位置
此时则可以在相应的位置输入相应的sql语句,如图得到了数据的名称,和数据库的版本
其他详细的注入,可以参考此表
3.基于报错的 sqlmap 注入
基于报错的sqlmap注入很简单,直接提交url再输入相应的参数及可以得到铭感数据
4.总结
1.判断是否存在sql报错注入,在url id=1参数后添加单引号,双引号,反斜杠,如果报错则有可能存在注入
2.通过报错分析出sql语句,更好的下一步渗透
3.总结,报错注入,一般是程序员没有给sql语句中的参数添加过滤机制,
造成代码中的报错语句出现信息泄露,并且可以直接拼接sql语句到url。