Web Lec 2: 注入⚓︎
参考
OverJerry 的课件
警告
请不要将这块知识用于非法途径(参见刑法第 253 和 286 条
MySQL 基础⚓︎
推荐下载 mysql 的插件 mycli(通过
pip
命令下载) ,它提供了语法高亮、代码补全等功能,还是挺方便的
启动 mysql:mysql –u root –p
,进入后每行命令前面应该显示mysql>
常见命令(若有遗忘可参见菜鸟教程
每条命令的结尾处都带有分号!
- 输出所有的数据库:
SHOW DATABASES;
- 使用某个其中一个数据库:
USE db_name;
- 显示数据库中的表:
SHOW TABLES;
- 输出列:
SHOW COLUMNS FROM table_name;
- 查询语句的结构:
SELECT field1, field2,...fieldN (FROM table_name1, table_name2...WHERE condition1 [AND [OR]] condition2...)
SELECT SLEEP(2);
SELECT 1, DATABASE(), VERSION(), USER(), ASCII('A'), CONCAT('A','B');
- 从特定表中获取特定列:
SELECT col_name FROM table_name
- 从特定表中获取全部列:
SELECT * FROM table_name
- 在限定条件下取数据:
SELECT * FROM table_name WHERE col_name = XXX
- 根据列名或索引排序:
SELECT * FROM table_name ORDER BY col_name(col_index)
- 从第 N( 从 0 开始 ) 条开始返回 M 条数据:
SELECT col_name1, col_name2… FROM table_name LIMIT N, M
- 也可以这么写:
SELECT col_name1, col_name2… FROM table_name LIMIT M OFFSET N
- 也可以这么写:
- 整合列数据:
SELECT concat(col_name1, col_name2…) FROM table_name
- 整合行、列数据:
SELECT group_concat(col_name1, col_name2…) FROM table_name
- 注释
- 注释 1: /* 这是注释,支持多行 */
- 注释 2:-- 这也是注释 ( 注意后面有个空格 )
- 注释 3:# 这还是注释
- 注释 4:/*!version_number 当数据库版本大于 version_number( 或 version_number 为空 ) 时注释内容会被执行,否则就是普通注释 */
-
一些常用的 URL 编码
- Space: %20
- #: %23
- ': %27
- ": %22
- +: %2B
#+$-_.!*() 浏览器地址栏默认不编码,但是不意味着不能编码
SQL 注入⚓︎
直接回显的注入⚓︎
无回显的注入⚓︎
一些特殊的注入⚓︎
SQL 注入的绕过⚓︎
一个 SQL 注入攻击示例⚓︎
其他的注入漏洞⚓︎
一个 SSRF 和 XXE 的联合利用实例⚓︎
评论区
如果大家有什么问题或想法,欢迎在下方留言~