1

所以基本上,在我的 PHPMYADMIN 中,我正在玩弄 SQL 注入,这样我最终可以成为一名渗透测试员

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

我遇到了困难,因为它说当我尝试将它注入我的 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

我认识的人说可以进行这种注入,但如果不重写整个查询并使用子查询,我无法弄清楚如何做到这一点。谢谢。

4

1 回答 1

1

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

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

于 2013-08-28T00:20:24.253 回答