SQL手工注入漏洞测试(MySQL数据库)

靶场地址:
https://www.mozhe.cn/bug/detail/elRHc1BCd2VIckQxbjduMG9BVCtkZz09bW96aGUmozhe
根据题意
SQL手工注入漏洞测试(MySQL数据库)_第1张图片
进入页面
SQL手工注入漏洞测试(MySQL数据库)_第2张图片
找到注入点
SQL手工注入漏洞测试(MySQL数据库)_第3张图片
and 1=1 页面正常
SQL手工注入漏洞测试(MySQL数据库)_第4张图片
and 1=2 页面报错
SQL手工注入漏洞测试(MySQL数据库)_第5张图片
通过SQL语句中order by N 来判断有几个字段,返回内容正常,可以确定至少有1个字段。
SQL手工注入漏洞测试(MySQL数据库)_第6张图片
通过SQL语句中order by N 来判断有几个字段,返回内容正常,可以确定至少有2个字段
SQL手工注入漏洞测试(MySQL数据库)_第7张图片
通过SQL语句中order by N 来判断有几个字段,返回内容正常,可以确定至少有3个字段
SQL手工注入漏洞测试(MySQL数据库)_第8张图片
通过SQL语句中order by N 来判断有几个字段,返回内容正常,可以确定至少有4个字段
SQL手工注入漏洞测试(MySQL数据库)_第9张图片
通过SQL语句中order by N 来判断有几个字段,返回内容不正常,说明字段数少于5个
SQL手工注入漏洞测试(MySQL数据库)_第10张图片
通过SQL语句中and 1=2 union select 1,2,3……,n联合查询,判断显示的是哪些字段,就是原本显示标题和内容时候的查询字段,原本的查询应该是select id,title,contents,times from news where id=1,也就是说title标题是第2个位置显示,contents内容是在第三个位置显示
SQL手工注入漏洞测试(MySQL数据库)_第11张图片
SQL语句中database()是查询当前数据库的名称(语法:select database();),一个服务器上可能有多个数据库,version()是查询当前数据的版本(语法:select version();),这里是这2个内容分别显示在第2、3的位置上,mozhe_Discuz_StormGroup为数据库,5.7.22-0ubuntu0.16.04.1为数据库版本和操作系统的版本
SQL手工注入漏洞测试(MySQL数据库)_第12张图片
这里涉及到数据库information_schema、表SCHEMATA、列SCHEMA_NAME三个内容,数据库information_schema是MySQL系统自带的数据库,其中记录了当前数据库系统中大部分我们需要了结的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等等。说白了,就是这个默认自带的数据中,存储了MySQL的数据库名字、表名字、列名字和其他信息,通过information_schema我们可以查看整个MySQL实例的情况。information_schema的详细介绍请自行补习(最好是自己安装一个mysql,连上去看看),limit 0,1意思是从第0行起,取1行数据,information_schema为获取的第1个数据库名称
SQL手工注入漏洞测试(MySQL数据库)_第13张图片
在原来的标题上位置显示为mozhe_Discuz_StormGroup,内容的位置显示为3
分析解说:limit 1,1意思是从第1行起,取1行数据,mozhe_Discuz_StormGroup为获取的第2个数据库名称
SQL手工注入漏洞测试(MySQL数据库)_第14张图片
limit 2,1意思是从第2行起,取1行数据,mysql为获取的第3个数据库名称
SQL手工注入漏洞测试(MySQL数据库)_第15张图片
limit 3,1意思是从第3行起,取1行数据,performance_schema为获取的第4个数据库名称
SQL手工注入漏洞测试(MySQL数据库)_第16张图片
limit 4,1意思是从第4行起,取1行数据,sys为获取的第5个数据库名称
SQL手工注入漏洞测试(MySQL数据库)_第17张图片
limit 5,1意思是从第5行起,取1行数据,返回为空,说明只有5个数据库information_schema、mozhe_Discuz_StormGroup、mysql、performance_schema、sys
SQL手工注入漏洞测试(MySQL数据库)_第18张图片
查询对应数据库mozhe_Discuz_StormGroup的第1个数据表名称,limit 0,1,第1个表名为StormGroup_member
SQL手工注入漏洞测试(MySQL数据库)_第19张图片
查询对应数据库mozhe_Discuz_StormGroup的第2个数据表名称,limit 1,1,第2个表名为notice
SQL手工注入漏洞测试(MySQL数据库)_第20张图片
返回为空,说明数据库mozhe_Discuz_StormGroup只有2个数据表,StormGroup_member、notice。
SQL手工注入漏洞测试(MySQL数据库)_第21张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第1个字段名称与类型,第1个名称为id,类型:整型int(11)
SQL手工注入漏洞测试(MySQL数据库)_第22张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第2个字段名称与类型,第2个名称为name,类型:字符型varchar(20)
SQL手工注入漏洞测试(MySQL数据库)_第23张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第3个字段名称与类型,第3个名称为passworde,类型:字符型varchar(255)
SQL手工注入漏洞测试(MySQL数据库)_第24张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第4个字段名称与类型,第4个名称为id,类型:整型int(11)
SQL手工注入漏洞测试(MySQL数据库)_第25张图片
返回为空,说明数据库mozhe_Discuz_StormGroup中的表StormGroup_member只有4个字段,名称为:id,name,password,status
SQL手工注入漏洞测试(MySQL数据库)_第26张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中数据总数,共有2条数据
SQL手工注入漏洞测试(MySQL数据库)_第27张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第1条数据的name、password、status的内容,三者之间用-连接起来,CONCAT的是把产生的字符串连接起来,这个地方拼接在一起时为了在一个地方全部显示出来。可以获得第一条数据的name账户为mozhe,密码password为356f589a7df439f6f744ff19bb8092c0(md5加密后的密码,可通过解密获到明文),status账户状态为0
SQL手工注入漏洞测试(MySQL数据库)_第28张图片
查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第2条数据的name、password、status的内容,三者之间用-连接起来,CONCAT的是把产生的字符串连接起来,这个地方拼接在一起时为了在一个地方全部显示出来。可以获得第一条数据的name账户为mozhe,密码password为6380305ffa6520047acfe95d29ae707b(md5加密后的密码,可通过解密获到明文),status账户状态为1
SQL手工注入漏洞测试(MySQL数据库)_第29张图片
把最终MD5后的密码解密出来,就可以得到后台登录的明文密码了

SQL手工注入漏洞测试(MySQL数据库)_第30张图片

你可能感兴趣的:(墨者学院)