SQL注入
Sql注入(英文:SQL injection),是发生于应用程序与数据库底层的安全漏洞。简而言之,是在输入的字符串之中注入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表中的所有内容
案例:
输入 : 1 ' union SELECT first_name , last_name FROM users; --
代码:
SQL注入验证:
1、单引号'
2、and 1=1
3、and 1=2
如果页面中Mysql报错,证明该页面存在SQL注入漏洞。
危害与预防:
危害:漏洞可以让黑客无限制的使用SQL,造成数据泄露甚至远程命令执行
预防:使用参数化查询避免数据被混在指令中
posted on 2020-01-08 18:45 crystal1126 阅读(269) 评论(0) 编辑 收藏 举报