所以基本上,在我的 PHPMYADMIN 中,我正在玩弄 SQL 注入(inject),以便我最终可以成为渗透测试员
SELECT *
FROM `ip` as ipstr
WHERE 'id' = $USERINPUT_HERE
ORDER BY
ipstr.id ASC
LIMIT 0 , 30
我遇到了困难,因为当我尝试将它注入(inject)我的 phpmyadmin 时,它说不再定义“ipstr”。
我知道如果它是一个子查询,我就能做到这一点。但它不是子查询,那么我怎样才能做出像下面这样的工作呢?
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
我认识的人说可以进行这种注入(inject),但如果不重写整个查询并使用子查询,我无法弄清楚如何进行。谢谢。
最佳答案
让我们看看。如果字符串包含 '';删除ip; select * from (select 1 as id) ipstr
,那么代码可能会做一些你意想不到的事情。 (老实说,整个语句可能会被拒绝,因为它是多个语句,但这是一个例子。)
SQL注入(inject)的解决方案是使用参数化查询。这不是一个硬概念。这是一个好习惯。你应该养成这个习惯。
关于mysql - 是否可以将 SQL 注入(inject)到此查询中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477428/