SQL 注入 (入门学习 详解)

SQL注入
SQL注入的两个前提:1.入户可输入内容,且要输入的内容是可控的。2.输入内容一定与数据库交互的。

CMS SQL注入

CMS逻辑:index.php首页显示内容,具有文章列表,articles.php文章详细页,URL中article.php?id=文章id读取Id文章。
一般sql注入分为:字符型和数字型。(在URL中修改对应ID值,出现的错误中判断是啥类型)。

SQL注入有关知识点

在Mysql 5.0以上的版本中,为了方便管理,默认定义了information_schema数据库(这个数据库在后期获取mysql数据库有很大用处)用来存储数据单元信息,默认具有三个表,schemata(数据库名)tables (表名) columns(列名或者字段名)。(在后面实例中可加深理解)
schemata表中,schema_name字段用来存储数据库名。
tables表中,table_schema存储数据库名,table_name 存储表名。
columns表,table_schema数据库名,table_name表名,column_name字段名。
limit m,n 就是从m行开始n个数据 (从0开始)
内联注释: /!SQL语句/ 只有mysql 可以识别,常用来绕过WAF。
例如:select * from articles where id=-1 /*!union //!select */1,2,3,4;
在sql注入中最常用的注入是 --+ 或者–空格(可以用%20代替)

常见的几种SQL注入

1.GET基于报错的SQL注入

直接进入实例进行讲解(火狐中安装了hackbar)
1.打开实验环境
在这里插入图片描述
2.根据提示输入Id值

在这里插入图片描述
3.输入‘ 或者” 或者/让报错

分
分析显示的错误’‘1’’ LIMIT 0,1’ ,去掉对应的’ ‘,‘1’’ LIMIT 0,1,在去掉自己输入的内容,基本就可以判断是字符型的注入。
注:后面的%23就相当于# ,%20相当于空格,%27相当于引号。为的是怕火狐无法直接识别。

4.用order by 查看列数
在这里插入图片描述
猜测的列数10不正确,改变数字,知道猜中。
在这里插入图片描述
5.使用联合查询查看相关数据。
要使查询语句显示于屏幕上因此将id=1改为-1。

结果显示数据存在第2,3列。
6.查看数据库,数据表等相关数据。
在这里插入图片描述
查数据库
在这里插入图片描述

查表名
在这里插入图片描述
查字段
在这里插入图片描述

查数据
在这里插入图片描述

用sqlmap进行数据查询

(我使用的是kali,kaLi中是自带mysql的)
1.先查询数据库
在这里插入图片描述
在这里插入图片描述
发现了security数据库
2.查数据表
在这里插入图片描述
发现了users表
3.查数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值