关系型数据库:可存放结构化数据,可高效操作大量数据,方便处理数据之间的关联关系。常见的关系型数据库有:access/sqlite/mysql/mssql server/orcale。
通过给查询条件携带恒等(or 1=1)或恒不等(or 1=0)去探测该网站是否存在sql注入风险。
通过mid(version(),1,1)=5等表达式探测数据库版本的信息。
通过union select 1,2,3,4 from dual等表达式探测当前所查询的表的列数,union select id,name,2,3 from dual探测表字段名。
......
SQL注入的方式多种多样,是一门值得深入学习的学问。
SQL注入危害:
1.猜解密码
2.获取数据
3.删库删表
4.拖库
SQL注入防御:
1.关闭错误输出
2.检查数据类型
3.对数据进行转义
4.使用参数化查询
5.使用ORM(对相关系映射)
NoSQL注入防御:
1.检查数据类型
2.类型转换
3.写完整的条件