思路:
1、访问连接,输入“admin”、“admin”显示如图
2、在admin后面加入单引号发现报错,可能存在SQL注入
3、重新输入“admin’ or ‘1’=’2—”、“111”,发现返回正常结果
4、利用Burpsuit拦截POST包
5、保存POST包到txt文本中,放入sqlmap目录下
6、利用sqlmap
➜ ~ sqlmap -r 2.txt
注入利用成功
获取数据库敏感信息:
➜ ~ sqlmap -r 2.txt -dbs
修复建议:
修改相关问题页面,对用户输入进行检验,过滤或转换可疑字符串,可以通过正则表达式,对单引号和双“-”进行转换,SQL查询语句不要使用动态拼装;使用存储过程进行参数化查询,在执行SQL查询命令前处理,可以有效的防止SQL注入,尤其注意对“select”、“from”、“+”等敏感字符的过滤或者转换。
建议修改Web应用服务的软件部分,增加对客户端提交数据的合法性验证,至少严格过滤SQL语句中的关键字,并且所有验证都应该在服务器端实现,以防客户端(IE页面代码部分)控制被绕过。
验证部分为get方法中URL后面跟的参数,及post方法中Post的数据参数,需过滤的关键字为:
[1] ‘ 单引号
[2] ” 双引号
[3] \’ 反斜行单引号
[4] \” 反斜杠双引号
[5] ) 括号
[6] ; 分号
[7]—双减号
[8]+ 加号
[9]SQL关键字,如select,delete,drop等等,注意对于关键字要对大小写都识别,如:select ;SELECT;seLEcT等都应识别。
建议降低Web应用访问使用较低权限的用户访问数据库。不要使用数据库管理员等高权限的用户访问数据库。
没有回复内容