sqli-labs解题笔记~准备篇

sqli-labs解题笔记~准备篇

前言

最近开始对sql注入起了兴趣,刚好手头有一个新的靶场资源,开始在sqli-labs里练习练习

一、准备阶段

1、预备知识

进行sql注入练习需要一定的基础知识,下面列举一下

(1)大概方向
名称 具体要求 具体细节
mysql数据库 简单了解 知道大致的分类以及构成,可以猜测表名等等
基本的sql语句 可以进行简单运用 掌握sql语法以及一些重要函数
url编码 简单了解 空格=’%20’,单引号=’%27’,双引号=’%22’,井号=’%23’.等于号=’%3d’
waf绕过 可以尝试使用url编码进行waf简单绕过 例如将空格改为%20,单引号改为%27,等于号改为%3d等.
注释符 需掌握 –+,–空格,#
(2)Mysql函数
常用的重要函数
version()				# 获取mysql数据库版本
database()				# 获取当前数据库名
user()					# 获取用户名
current_user()			# 获取当前用户名
system_user()			# 获取系统用户名
@@datadir				# 获取数据库路径
@@version_compile_os	# 获取操作系统版本
字符串函数
length()	        	# 返回字符串的长度
substring()	        	# 截取字符串
substr()	        	# 截取字符串
mid()	        	   	# 截取字符串
left()			        # 从左侧开始取指定字符个数的字符串
concat()	     	   	# 没有分隔符的连接字符串
concat_ws()      		# 含有分割符的连接字符串
group_conat()   		# 连接一个组的字符串
ord()					# 返回ASCII 码
ascii()					# 返回ASCII 码
hex()					# 将字符串转换为十六进制
unhex()					# hex 的反向操作
md5()					# 返回MD5 值
floor(x)				# 返回不大于x 的最大整数
round()					# 返回参数x 接近的整数
rand()					# 返回0-1 之间的随机浮点数
load_file()				# 读取文件,并返回文件内容作为一个字符串
sleep()			        # 睡眠时间为指定的秒数
if(true,t,f)			# if 判断
find_in_set()			# 返回字符串在字符串列表中的位置
benchmark()				# 指定语句执行的次数
(3)重要的库名和表名
重要的数据库
information_schema		# 重要的数据库
重要的表
schemata				# 数据库信息
schema_name
##
tables					# 表信息
table_schema
table_name
##
columns					# 字段信息
column_name

2、准备工具

先来了解一下sql注入的分类

(1)sql注入分类
注入点
  • 数字类型的注入
  • 字符串类型的注入
提交方式
  • GET注入
  • POST注入
  • COOKIE注入
  • HTTP注入
获取信息的手段
  • 基于布尔的盲注
  • 基于时间的盲注
  • 基于报错的注入
(2)Hackbar

由于注入方式的不同,提交参数的方式也不同,get方式可以直接在地址栏添加,而post方式则需要通过工具提交。这里分享老版本未收费的Hackbar。
hackbar插件下载
在Firefox中安装,然后禁止更新,下个版本收费…
在这里插入图片描述

结语

准备阶段告一段落,下一篇开始正式练习

猜你喜欢

转载自blog.csdn.net/YIGAOYU/article/details/108184796