数据库
首页 > 数据库> > Web渗透05_SQL注入(TOP 1漏洞)

Web渗透05_SQL注入(TOP 1漏洞)

作者:互联网

SQL注入是所有WEB漏洞中最危险的攻击方式,带来的危害也是最大的。没有之一

SQL注入基础

在编写web应用时,几乎所有的数据都存储在网站的数据库中,你的账号信息,收藏信息,文章信息等等数据都存在数据库当中。

我们常看到同一个网站,不同人登录后显示的页面是不同的,这些不同便在于不同用户所拥有的数据。

网站并非是为每个人单独去写一个个的页面,而是通过脚本语言,通过与数据库交互(传入相关信息,数据库对所传入的信息进行搜索,数据库返回搜索结果),之后脚本语言把结果显示在一个页面的模板上。这样每个人看到的页面就是不同的了。

public function delAllCate($cate_id){
		// 此时$cate_id是一个数组,需要先转换为字符串
		$cate_id = implode(',', $cate_id);
		$sql = "delete from bg_category where cate_id in($cate_id)";
		return $this->dao->my_query($sql);
	}

这是一个php的数据库交互函数的例子,其中$cate_id是通过post传入的参数,利用字符串拼接的方法,把这个 $cate_id 变量字符串写到对应的地方,之后执行这条语句,并返回对应的结果。

如果我们不按照规矩传呢?我们通过劫持流量修改其中的post数据中的cate_id呢?这会引发一系列后果。

漏洞原理

通过用户可控参数中注入SQL语法,破坏原有的SQL结构,进行攻击的方法。

造成原因:

注入位置

在Web应用获取用户数据的地方,只要存在数据库查询交互,都有可能存在SQL注入的可能。

漏洞危害

SQL注入类型分类

数据类型: 数字型(无引号包裹),字符型(引号包裹),日期型。
注入手法:

MySQL知识点

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。开源

Github用的就是ruby+Mysql

MySQL注释

  1. #
  2. -- 杠杠空格。
  3. /* */ 多行注释

MySQL 元数据库 information_schema

MySQL 常用参数和函数

函数名 描述 实例
RAND() 返回 0 到 1 的随机数 SELECT RAND() --0.93099315644334
DATABASE() 返回当前数据库名 SELECT DATABASE(); -- runoob
USER() 返回当前用户 SELECT USER(); -- guest@%
VERSION() 返回数据库的版本号 SELECT VERSION() -- 5.6.34

标签:Web,cate,05,TOP,MySQL,id,SQL,数据库,注入
来源: https://www.cnblogs.com/asmurmur/p/15100547.html