提问人:Praanto 提问时间:4/25/2023 最后编辑:Nick CoxPraanto 更新时间:4/30/2023 访问量:58
如何在 Stata 的 SQL 注入中匹配字符串?
How do match strings inside SQL injections in Stata?
问:
我正在尝试通过以下方式在 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 语句中的字符串的任何想法?
答:
2赞
TheIceBear
4/25/2023
#1
我自己没有使用过,所以我不确定它是否是完整的解决方案,但我发现了两个 Stata 语法错误。obdc
在 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
评论
obdc load, exec("select * from table_name as u, l2010 as lv where u.IntUft='I'") dsn("some_db") clear