gpt4 book ai didi

sql-server - 我的服务器上的 SQL 注入(inject)尝试

转载 作者:行者123 更新时间:2023-12-03 11:21:00 25 4
gpt4 key购买 nike

我对 SQL 注入(inject)和 URL 解码知道一点,但是在这方面比我更专业的人可以看看下面的字符串并告诉我它到底想做什么吗?

几个星期前,北京的一个 child 尝试了多种注入(inject)方法,如下所示。

%27%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20%27%27=%27

最佳答案

它正在猜测表单数据被替换到的 SQL 语句的类型,并假设它在过程中的某个步骤中会被很差地清理。考虑一个与 SQL 服务器对话的程序(例如纯粹的 Cish 代码):

fprintf(sql_connection, "SELECT foo,bar FROM users WHERE user='%s';");

但是,对于上面的字符串,SQL 服务器会看到:

SELECT foo,bar FROM users WHERE user='' and char(124)+user+char(124)=0 and ''='';

糟糕!那不是你想要的。接下来会发生什么取决于数据库后端以及您是否打开了详细错误报告。

对于懒惰的 Web 开发人员来说,无条件地为所有客户端启用详细错误报告并且不关闭它是很常见的。 (寓意:只为非常严密的可信网络启用详细的错误报告,如果有的话。)这样的错误报告通常包含一些关于数据库结构的有用信息,攻击者可以使用这些信息来确定下一步要去哪里。

现在考虑用户名 ';描述表用户; SELECT 1 FROM users WHERE 'a'='。依此类推……这里有一些不同的策略,具体取决于数据的确切输出方式。现有的 SQL 注入(inject)工具包可以自动执行此过程,并尝试通过不安全的 Web 界面自动转储数据库的全部内容。 Rafal Los's blog post包含更多技术见解。

您也不仅限于窃取数据;如果你可以插入任意 SQL,那么,obligatory xkcd reference比我更好地说明了这一点。

关于sql-server - 我的服务器上的 SQL 注入(inject)尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953015/

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