gpt4 book ai didi

SQL Server 数据库注入(inject)

转载 作者:行者123 更新时间:2023-12-04 22:03:09 25 4
gpt4 key购买 nike

我在带有 SQL Server 后端数据库的 asp 中有一个简单的 Web 应用程序。登录页面有一个注入(inject)点,我可以通过通常的方式绕过登录` ' 或 1=1 '。现在我可以使用 GROUP BY 和 HAVING 语句枚举数据库中的列。我能够列举抛给我的错误中的信息。

` ' or '1' = '1' GROUP BY tblCustomers.cust_id, tblCustomers.cust_name, tblCustomers.cust_password, tblCustomers.cust_account  
HAVING 1=1 -- `

我正处于学习阶段,我发现 cust_idcust_namecust_passwordcust_account是列,tblCustomers 是表名。

我还可以使用 AND 语句和转换函数来枚举一些信息。我使用的命令是 ' or '1' = '1' and 1 =convert(int,@@version)-- 我再次能够在错误中获取信息。

现在,我如何转储数据库中的条目以至少知道客户名称和密码?我尝试了用分号分隔的堆栈查询,但在执行第一个查询后,即 ' OR 1=1 我只是登录并且看不到任何输出,因为他们没有其他参数,我无法在页面上的其他任何地方输出它(没有参数和他们的我登录后只是一个空白页)。 UNION SELECT 不起作用,因为我无法猜测第一个 SELECT 语句及其退出。有什么功能可以帮助我转储客户名称和密码吗?

我将非常感谢对此的任何帮助。谢谢。

最佳答案

使第一个查询禁止登录。即,将“or 1 = 1”写成“and 1 < 1”,然后是下一条语句。如果我理解正确,你可以在哪里注入(inject),登录将失败并且你会得到你的转储(希望如此,但取决于你正在摆弄的门户)。编辑:顺便说一句,如果您希望查询失败,为什么要输入正确的用户/密码组合? + 你可以想出登录查询,它应该非常简单(用户名和密码,也许?)

关于SQL Server 数据库注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37643790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com