2012-02-16 54 views
0

假设网站是用PHP编写的,它禁用了多条语句。如果查询如下所示:如何注入禁用多个语句?

Select id From TableX Where num = >userInput< 

是否无法通过SQL注入更新或删除记录?是否有可能从另一个表中获取内容,如tableB,这可能不是联合兼容的?

在此先感谢。

回答

0

userInput = -1 union select GetCharCode(SomeStringField, CharPosition) from SomeTable where SomeCondition,其中GetCharCode返回字符的代码的SomeStringFieldCharPosition(你需要有写一些DB-特定的代码),将帮助您通过可能CharPosition小号循环得到的SomeStringField的价值,从而绕过tableB不是“与工会兼容”的问题。

+0

你是什么意思的字符代码?而且,这不仅仅是返回与以前相同的列数吗?两张桌子现在如何成为工会兼容? – FiniteA 2012-02-16 13:21:16

+0

@FiniteA,我的意思是ASCII码。你可以得到你的兴趣(代的1'CharPosition')领域的第一个字符,然后获得第二个字符等 – penartur 2012-02-16 15:40:15

+0

所以你的意思是将每列的第一个字母组合成单一字符串?它与查询“Select id from ...”中的单列匹配?然后,我想知道在通常如果有查询的第一部分,多列,你可以申请这一招,说:“从选择ID1,ID2 ......” – FiniteA 2012-02-17 02:42:44

0

我很好奇,如“如何注入”,“如何打破”,“如何窃取一些信息”,这意味着获得分步说明问题 - 在这些问题欢迎本网站或不是?

+0

有些人想知道点中的应用处于危险之中。 – penartur 2012-02-16 15:38:01

+0

他们肯定知道他们的观点。问题中明确标出了这一点。 – 2012-02-16 20:19:09