背景
今天在做ctfhub的sql注入的题目。做到了报错注入这一个,还没有开环境,就先想在本地试一下报错注入的大体流程。根据xpath报错的两个函数extractvalue和updatexml都复现的很好。但是用floor函数让group by主键重复,从而产生报错信息的复现始终失败。我试了windows、wsl、ubuntu的mysql环境,全部都是以下的结果。
ERROR 1022 (23000): Can't write; duplicate key in table '/tmp/#sql73d_a_7'
没有爆出我们需要的信息。
解决
经过 尝试,我发现这是版本的问题,新版的mysql即8.x已经不适用这个floor让group by重复的这个报错注入了。
5.x的版本应该都试用。没有全部试,至少5.6版本是可以的。