Get Mystery Box with random crypto!

从以上代码的注释分析,可以看出,用户提交的数据并没有进行过滤。 | 大飞哥专属频道

从以上代码的注释分析,可以看出,用户提交的数据并没有进行过滤。如果用户提交的不仅仅是一个id,而是一段标准的SQL语句,那么会被SQL解释器执行。例如输入1‘ and 1=1 order by 4 #,那么上述代码中的SQL语句就会变为

1 $getid = "SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=1 order by 4 #'";

#号将后续的引号注释了。order by 是用来查询列数的,当字段数超过数据库的字段数,数据库就会返回错误信息,因此,我们可以利用order by来猜测数据库的字段数。至此,如果熟悉SQL语句,那么可以进一步写入更多的语句,查询数据库,导致隐私数据泄露。