2013-08-28 24 views
1

所以基本上,我PHPMYADMIN我与SQL注入玩弄周围,使我可以最终成为我有困难笔测试SQL注入到这个查询中可能吗?

SELECT * 
FROM `ip` as ipstr 
WHERE 'id' = $USERINPUT_HERE 
ORDER BY 
ipstr.id ASC 
LIMIT 0 , 30 

,因为它说,“ipstr”不再定义,当我尝试将其注入到我的phpmyadmin。

我知道,如果它是一个子查询,我将能够做到这一点。但它不是一个子查询,所以我怎么能做出如下的工作?

SELECT * 
FROM `ip` as ipstr 
WHERE 'id' = $USERINPUT_HERE 
UNION ALL SELECT 1,2,3,4,5 
ORDER BY 
ipstr.id ASC 
LIMIT 0 , 30 

有人知道我是说就可以做这种注射的,但我无法弄清楚如何做到这一点无需重写整个查询和使用子查询。谢谢。

+1

如果有直接来自用户的输入,'yes' - 除非正确进行消毒,否则sql注入是可能的。 –

+0

你能否举个例子说明上述是如何容易受到SQL注入的?这将不胜感激。谢谢 – Jason

回答

1

让我们来看看。如果字符串包含''; delete ip; select * from (select 1 as id) ipstr,那么代码可能会做一些你不期望的事情。 (说实话,整个陈述可能会被拒绝,因为它是多个陈述,但这是一个例子。)

SQL注入的解决方案是使用参数化查询。这不是一个硬性的概念。这是一个好习惯。你应该养成这种习惯。