No. 31 笔记 | Web安全-SQL手工注入技术学习 Part 2

在这里插入图片描述

一、研究背景

  1. 背景介绍
    SQL注入是一种常见且高危的Web安全漏洞。攻击者可以通过构造恶意SQL查询语句来绕过验证机制,执行未授权操作,如获取敏感信息、篡改数据库内容甚至控制服务器。

  2. 研究内容
    本笔记探讨以下数据库的手工注入技术:

    • MySQL
    • Access
    • MSSQL
    • Oracle
      覆盖了联合查询注入、报错注入、盲注注入、UA注入、Referer注入、DNSLOG外带、Cookie注入、宽字节注入、堆叠注入等方法。
  3. 相关研究
    目前的主要研究集中在SQL注入的检测和防御技术:

    • 参数化查询:避免动态拼接用户输入。
    • 输入验证:严格过滤SQL关键字符。
    • 输出编码:对输出数据进行编码以防止攻击扩散。

二、SQL注入技术详解

1. MySQL注入

  1. 联合查询注入

    • 利用UNION操作符,将多条SELECT语句的结果合并。
    • 步骤
      1. 判断列数:利用ORDER BY语句逐步增加字段数,观察是否报错。
      2. 构造查询:如:UNION SELECT 1,2,3--,逐步替换为敏感数据字段。
      3. 获取数据:在显示字段中插入database()version()等函数查看信息。
  2. 报错注入

    • 方法:利用MySQL特性,构造错误表达式来暴露数据。
      • 示例:EXTRACTVALUE(1, 'XPath语法错误')UPDATEXML(1, 'XPath错误', 1)
  3. 盲注注入

    • 布尔盲注:通过页面返回的不同响应判断数据。
      • 示例:AND (SELECT 'a'='a')-- 页面正常;AND (SELECT 'a'='b')-- 页面异常。
    • 时间盲注:利用SLEEP()函数延迟判断。
      • 示例:IF(条件, SLEEP(5), 0)--
  4. 其他技术

    • UA/Referer注入:通过修改HTTP请求头进行注入。
    • DNSLOG外带:将数据通过DNS请求传出。
    • Cookie注入:在Cookie参数中嵌入注入语句。
    • 宽字节注入:利用GBK编码将字符解码为SQL语句。
    • 堆叠注入:通过分号执行多条SQL语句。
  5. Getshell

    • 目标:利用文件读写权限获取Webshell。
    • 方法LOAD_FILE()读取敏感文件,或INTO OUTFILE写入后门文件。

2. Access注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lixin Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值