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编辑  收藏  举报

导航