1.SQL注入 sql就是数据库,像sql server,mysql,db2,postgresql,oracle等都是比较常见的数据库,可以通过构造数据库语句,也就是sql语句,进行增删该查操作。 SQL注入是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 2.产生SQL注入原因 动态网站是通过脚本语言去调用数据库从而完成整个网站的运作,,对网站进行操作时,只要是涉及数据库的操作都会带入数据库进行查询,若没有任何限制,则可以输入任意的查询语句带入数据库查询。 sql注入就是限制用户输入不严引起的,也就是过滤不严。 3.SQL注入分类 从参数类型可以分为:×××注入和字符型注入 从注入类型可以分为以下几类: (1)基于错误的有显示位的注入 (2)基于错误的有数据库报错信息的注入 (3)基于错误的没有数据库报错信息的盲注 (4)基础时间的盲注 4.SQL注入经典流程 (1)判断Web系统使用的脚本语言,发现注入点,并确定是否存在SQL注入漏洞 (2)判断Web系统的数据库类型 (3)判断数据库中表及相应字段的结构 (4)构造注入语句,得到表中数据内容 (5)查找网站管理员后台,用得到的管理员账号和密码登录 (6)结合其他漏洞,想办法上传一个Webshell (7)进一步提权,得到服务器的系统权限 5.判断SQL注入方法 (1)最常用的方式:直接在url后面输入and 1=1页面返回正常,and 1=2页面返回错误,或者是直接加单引号报错,则有可能存在sql注入; (2)也可采用or或者xor来判断; (3)在没有错误回显的情况下可以采用and sleep(1)来判断; (4)也可采用数学计算,例如 id=2和id=3-1返回测界面一样,则有可能存在sql注入。 总体来说,输入的语句影响了数据库的查询结果,那么就极有可能存在sql注入。