2017第二届广东省强网杯线上赛 phone number

前言

这题因为找不到其他可以利用的点,所以基本上就是SQL注入。但是注入的姿势真的自己没有想到过。既然这题遇到了,以后SQL注入的时候也就多了一种思路。

WP

这题直接讲解法叭。主要就是注册的那个界面的phone,如果你输入了非数字的话,他会提示你只能输入数字。但是这里用16进制是可以的。而且这里是数值型注入,因此直接构造注入语句,然后变成十六进制,然后登录然后进行check。check那个会执行你注入的语句,相当于二次注入了。

在这里插入图片描述

在这里插入图片描述
因此接下来就是正常的SQL注入了。具体的注入我这里就不说了,我来说一下我遇到了一些问题。
首先就是group_concat的问题。如果用这个来查表还没问题,但是如果用它查列问题就很大了。
在这里插入图片描述
这样就会错过重要的信息。因为group_concat存在长度限制,返回的列如果太多的话,后面的信息会被自动截断。因此我们应该这样查:

0 union select column_name from information_schema.columns where table_name='user'

这样就可以完整的显示列名了,我们可以发现username和phone。结合admin的电话藏着大秘密,因此我们直接去查admin的phone:

0 union select phone FROM user where username='admin'

这样就可以成功得到flag。

感悟

其实自己当时想到了phone那里应该存在二次注入,但是没有想到用十六进制。这样以后自己遇到SQL注入,可以多一种思考的方法,是不是可以二级制,八进制和十六进制来试试呢?

猜你喜欢

转载自blog.csdn.net/rfrder/article/details/108895895