跳转至

Web Lec 2: 注入⚓︎

参考

OverJerry 的课件

警告

请不要将这块知识用于非法途径(参见刑法第 253 286 ,否则后果你懂得 ...

MySQL 基础⚓︎

推荐下载 mysql 的插件 mycli(通过pip命令下载,它提供了语法高亮、代码补全等功能,还是挺方便的

启动 mysqlmysql –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 的联合利用实例⚓︎

评论区

如果大家有什么问题或想法,欢迎在下方留言~