如何在 Stata 中匹配 SQL 注入中的字符串?

问题描述 投票:0回答:1

我正在尝试通过以下方式在 Stata 中注入 SQL 语句:

obdc load, exec('"select * from table_name as u, l2010 as lv where u.IntUft='I'"') dsn("some_db") clear

但这给了我一个

r(198)
错误说
table() or exec() is required
.

当我用整数尝试相同的代码时,它确实有效。也就是说,

obdc load, exec('"select * from table_name as u, l2010 as lv where u.Ar=2000"') dsn("some_db") clear

作品。

关于如何像在 Stata 中那样比较 SQL 语句中的字符串有什么想法吗?

sql stata sql-injection
1个回答
0
投票

我自己没有使用过

obdc
,所以我不确定它是否是完整的解决方案,但我发现了两个 Stata 语法错误。

在 Stata 中,复合字符串中的前导单引号必须是反引号

`
。所以你需要
exec(`"select
。同样,在引用本地宏时,您也需要以反引号开头。所以你需要
u.IntUft=`I'"'
.

在此处查看完整示例:

obdc load, exec(`"select * from table_name as u, l2010 as lv where u.IntUft=`I'"') dsn("some_db") clear

不确定是否需要复合字符串,因此修复本地引用可能就足够了。为什么你的第二个例子在技术上也有语法错误取决于命令

obdc
如何处理该字符串输入。

© www.soinside.com 2019 - 2024. All rights reserved.