GET方法
GET 是 HTTP 请求方法之一,用于从服务器获取资源,不修改服务器上的数据。
核心特征
参数拼接在 URL 中
格式:url?参数名1=值1&参数名2=值2
如果要同时传递多个参数,参数之间以"&"分割
如果要给网站传递&这个符号,则要使用百分号+16进制ascii码值:%26。
由于URL编码中通常出现%,所以URL编码又称百分号编码。
示例: http://test.com/index.php?id=1&name=admin ? 后面的内容就是 GET 传参数据。
GET 方法缺点
- 参数明文暴露在 URL 地址栏,容易泄露敏感信息,服务器访问日志也会记录参数。
- 受 URL 长度限制,无法传输大容量数据。
- 可被浏览器缓存、保存为书签,容易造成数据重复读取、隐私泄露。
POST方法
基本定义
POST 是 HTTP 请求方法,用于向服务器提交数据,常用来新增、提交数据。
POST 提交的数据存放在 HTTP 请求体
核心特征
- 数据存放于请求体(Body) 参数不在 URL 中,地址栏看不到提交的数据。
- 理论上无大小限制 不受 URL 长度约束,可以传输大量数据(文件上传基本使用 POST)。
- 浏览器默认不会缓存 POST 请求,无法直接保存为书签
- 多用于提交表单、上传文件、登录操作。
登录mysql

Mysql的内置数据库

数据库的结构:数据库服务器 → 数据库(Schema) → 数据表(Table) → 行 (记录)、列 (字段)
information_schema
信息数据库。保存着mysql中所有其他数据库的信息,数据库名,数据库中的表、表中的字段等。三个重要表名:
schemata表
- 功能:存储该用户创建的所有数据库的库名
- 核心字段:schema_name
- 含义:全部数据库名称
tables表
- 功能:存储用户创建的所有数据库的库名和表名
- 核心字段
- table_schema:数据表所属于的数据库名
- table_name:数据表名
columns表
- 功能:存储用户创建的所有数据库的库名,表名,字段名
- 核心字段
table_schema:数据库名table_name:数据表名column_name:字段名
逻辑关联
table_schema(数据库名)
↓包含
table_name(数据表名)
↓包含
column_name(字段名)
select查询
#打开某个数据库
use 数据库名;
#查看数据库中的表
show tables;
#显示所有字段
select * from 表名;
#显示指定字段
select 字段1,字段2 from 表名;
limit的用法
格式:limit m ,n
m :起始偏移位置(省略时默认从0开始计数)
n:取出多少条记录
order by的用法
order by n:按第 n 列排序;通过增减数字观察页面响应,判断查询拥有多少列。
数字≤真实列数,页面正常;数字>真实列数,SQL 报错。
注释符
字符类
在页面有文本框输入时可使用字符类注释符
2.--空格
3./**/
4.--+
URL编码类
在页面文本框输入数据提交后,若为GET 提交方式 ,输入的数据会拼接在 URL 后方传递给网站。 在 URL 中传输参数时,浏览器会自动对特殊字符执行URL 编码。
URL 规范中,空格、单引号、#、&、+ 等字符拥有特殊含义;直接放在 URL 会破坏参数结构。编码后转为安全十六进制形式,保证数据完整传输。
' 的编码标识为%27 + 表示空格 %3D是=的URL编码%23:等价于#

URL 常用特殊字符编码对照表
| 原始字符 | URL 编码 | 说明 |
|---|---|---|
| 空格 | %20 / + |
GET 参数内+代表空格;%20通用 |
' 单引号 |
%27 |
字符型注入高频 |
# |
%23 |
URL 中 #代表锚点,浏览器截断请求,注入必须编码 |
& |
%26 |
用于分隔多个参数 |
+ |
%2B |
原始加号需要传输时编码 |
dvwa low级别SQL注入
文本型注入
客户端输入的数据被作为字符串带到了select查询语句的一对单引号中。
查看关键源码

变量query的值是一个select查询语句,然后调用mysqli_query()函数执行这个查询
分析查询语句:

$id是来自客户端输入数据
当输入的值为 ' or 1=1 #时
查询语句变成:
where user_id ='' or 1=1#'
#将最后的单引号给注释,使其并不发挥作用
结果恒为真,则显示了所有的用户信息

使用的payload
' or 1=1 #
第一个单引号是为了与原代码中的左侧单引号闭合,使其成为一对,
#是为了将原代码中右侧的单引号注释,这样在mysql中执行select查询时,原本最后的单引号就被忽略了
数字型注入
不需要闭合符号
常见select语句
select * from admin where id=$id;
特点:变量$id没有单引号包裹,直接传入数字
判断文本型,数字型注入的方法
检测网站是否会对传入的数据进行数值运算,如果做数值运算,就是数值型注入。