前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql-libs-SQL注入学习记录-第一节(未完结)

sql-libs-SQL注入学习记录-第一节(未完结)

作者头像
Baige
发布2022-03-22 13:16:28
6680
发布2022-03-22 13:16:28
举报
文章被收录于专栏:世荣的博客

前言:sql-libs是专门用来练习SQL注入的开源学习平台,我们常常在CTF的WEB题型中遇到SQL注入的题目类型,各种注入类型让我们难以解题,哪怕是面向WP解题也常常看不懂大佬们的payload,到底什么是盲注?什么是堆叠注入?什么是联合查询?如何根据回显得知哪些被过滤了......所有的这些种种,我们都希望能够搞明白:为什么? 在经历了一段时间的休整和对我之前的博客进行整理之后,我现在得以有一些时间去填我之前的坑,我们来系统,细致的去学习这些内容和知识点。

Sqli-labs的安装教程在这里:sqli-labs的安装 这里建议安装WAMP/MAMP(Windows/Mac版本)这里一系列的安装教程参考我之前的教程:安装教程

好 现在一切就绪,然我们开始吧! 为了做题方便和payload直观,这里就用HackBar,打开WAMP/MAMP,在浏览器上输入:

代码语言:javascript
复制
Windows:127.0.0.1/sql/Less-1/  #这里安装的时候sql命名任意,根据命名在地址栏上输入
Mac:    localhost/sql/Less-1/  

这里我们先不做题,先来聊聊基础知识

一.注入的分类

1.基于从服务器接收到的响应

2.基于如何处理输入的SQL查询(数据类型)

3.基于程度和顺序的注入(哪里发生了影响)

一阶注射是指输入的注射语句对WEB直接产生了影响,出现了结果;二阶注入类似于存储型XSS,是指输入提交的语句无法直接对WEB应用程序产生影响,通过其它的辅助间接对WEB产生危害,这就是二阶注入。

4.基于注入点的位置上的

二.系统函数

介绍几个常用的函数:

代码语言:javascript
复制
1. version() --MySQL版本
2. user()    --数据库用户名
3. database()--数据库名
4. @@datadir --数据库路径
5. @@version_comlipe_os--操作系统版本

三.字符串连接函数

函数的具体介绍(这又是另外一个坑,这里我不再展开细说,大家去看我另外一篇文章)

代码语言:javascript
复制
1. concat(str1,str2,...) --没有分隔符地连接字符串
2. concat_ws(separator,str1,str2,...)--含有分割符地连接字符串
3. group_concat(str1,str2,...)--连接一个组的所有字符串,并以逗号分隔每一条数据

四.一般用于尝试的语句

代码语言:javascript
复制
重点: --+ 可以用 # 代替,URL提交过程中编码后的 # 为 %23
or 1=1--+
'or 1=1--+
"or 1=1--+
)or 1=1--+
')or 1=1--+
") or 1=1--+
")) or 1=1--+

一般代码为:

代码语言:javascript
复制
$id=$_GET['id'];
$sql="SELECT * FROM uesrs WHERE id='$id' LIMIT 0,1";

此处考虑两个点,一个是闭合前面的 ' 另一个是处理后面的 ' ,一般采用两种思路: 闭合后面的引号或者注释掉,注释掉采用 --+ 或者 # (%23)

五.union操作符的介绍

UNION操作符用户合并两个或多个SELECT语句的结果集。UNION内部的SELECT语句必须拥有相同数量的列。列必须也拥有相似的数据结构。同时,每条SELECT语句中的列的顺序必须相同 SQL UNION语法:

SELECT column_name(s)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 09 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.注入的分类
  • 二.系统函数
  • 三.字符串连接函数
  • 四.一般用于尝试的语句
  • 五.union操作符的介绍
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档