Sql注入是一种通过操作sql语句进行攻击目的的技术。
sql注入分类:
1 |
数据库类型注入 |
Access,MSsql,mysql等数据库注入攻击 |
2 |
提交方式注入 |
get,post,cookie,http等提交注入攻击 |
3 |
参数类型注入 |
数字,字符,搜索等注入攻击 |
4 |
其他复杂性注入 |
加解密小技巧注入 |
5 |
报错延时盲注 |
手工注入加强版 |
6 |
防注入及绕过 |
WAF及常见过滤分析及绕过 |
7 |
注入漏洞拓展 |
注入函数,注入挖掘等 |
登录案例:
登录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表中的所有内容
CMS案例:
index.php首页展示内容,具有文章列表(链接具有文章id),articles.php文章详细页,URL中article.php?id=文章id读取id文章
SQL注入验证:
1、单引号'
2、and 1=1
3、and 1=2
如果页面中Mysql报错,证明该页面存在SQL注入漏洞。