SQL注入攻击-查询数据信息(上)
在学习本章前,建议先对前序章节进行了解,传送门如下:
本章节结合靶场试验来介绍如何获取数据库一些有用的信息。
在数据库中,获取有关数据库本身的一些信息通常是很有用的,利用好这些信息对注入攻击很有帮助。
我们可以查询数据库的版本信息,通过掌握数据库类型从而用合适的语句进行后续的注入攻击。
例如,在Oracle上,我们可以执行下面这条语句来获取版本信息:
我们还可以查询在数据库中存在哪些表,以及这些表包含哪些列。
例如,在大多数数据库上,我们可以执行下面查询来列出表:
不同的数据库提供了不同的方式来查询它们的版本,我们经常需要尝试不同的查询来找到一个有效的查询语句,从而确定数据库软件的类型和版本。
例如,我们可以使用下面这个UNION攻击来查询版本:
可能会返回类似下面的输出,确认数据库是MSQL以及正在使用的版本:
https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-oracle
这个场景包含SQL注入漏洞,可以使用UNION攻击从注入的查询中检索结果,数据库为Oracle数据库。
①将Burp Suite设置为阻断模式,先尝试用上个章节直接用NULL的方法来探测列数好像不行,那我们就尝试用查询内置表的方式来猜测返回的列数
可以看到,返回数据中包含数据库的相关信息,完成本试验
https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft
这个场景包含SQL注入漏洞,可以使用UNION攻击从注入的查询中检索结果,数据库为MySQL或MSSQL数据库。
①将Burp Suite设置为阻断模式,先尝试用上个章节的方式,用NULL进行返回列判断,注意最后是用井号#来进行注释
可以在返回响应中看到数据库的具体版本号,完成本次试验
/
/
/ /
/ /
标签: