绕过 SQL 注入

Web安全攻防 学习笔记

一、绕过 SQL 注入


1.1、绕过去除注释符的 SQL 注入

        注释符用于标记某段代码的作用,起到对代码功能的说明作用,但是注释掉的内容不会被执行。

Mysql中的注释符:

  1. 单行注释: --+--空格#

  2. 多行注释: /* 多行注释内容 */

        对于正常的 SQL 语句中,注释符起到说明作用的功能。但是对于在利用 SQL 注入漏洞过程中,注释符起到闭合单引号、多单引号、双引号、单括号、多括号的功能。

        利用注释符过滤不能成功闭合单引号,换一种思路利用 or '1' = '1 闭合单引号。

	http://127.0.0.1/sqli/Less-23/?id=1' --+
	http://127.0.0.1/sqli/Less-23/?id=1' or '1' = '1

在这里插入图片描述
在这里插入图片描述


1.2、绕过剔除 and 和 or 的 SQL 注入

MySQL 基础知识补充:

  1. MySQL 中的大小写不敏感,大写与小写一样

  2. MySQL 中的十六进制与 URL 编码

  3. 符号和关键字替换 and → &&or → ||

sqlmap 探测

	$ python sqlmap.py -u "http://127.0.0.1/sqli/Less-25/?id=1" --dbs --batch



1.3、绕过去除空格的 SQL 注入

编码:hex,urlencode

  • 空格 URL编码:%20

  • TAB URL编码:%09

url 编码:https://www.w3school.com.cn/tags/html_ref_urlencode.html

sqlmap 探测

	# 有时候字符编码的问题, 可能导致数据丢失, 可以使用 hex 函数来避免
	
	$ python sqlmap.py -u "http://127.0.0.1/sqli/Less-25/?id=1" --dbs --batch
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web应用程序防火墙(WAF,Web Application Firewall)是一种网络安全设备或服务,用于检测和阻止针对Web应用的攻击,包括SQL注入等。SQL注入是攻击者通过恶意输入,将SQL代码插入到应用程序的数据库查询中,意图获取敏感信息或篡改数据。 WAF绕过SQL注入通常是攻击者针对WAF的安全策略和技术限制来实施的一种技术手段,常见的方法包括: 1. **参数编码和转义**: 攻击者可能会尝试使用特殊字符的转义序列,如\"\'(单引号)或\"\"(双引号),来欺骗WAF,使其误判为合法的输入。 2. **利用WAF规则漏洞**: 一些老旧或配置不当的WAF可能无法识别复杂的注入模式,攻击者会利用这些漏洞进行攻击。 3. **HTTP头部注入**: 攻击者可能会尝试将SQL注入嵌入到HTTP头部请求中,有些WAF可能只关注请求体而忽视头部。 4. **使用存储过程或动态SQL**: 通过调用服务器端已存在的存储过程,或者构造动态SQL,使攻击难以被WAF直接拦截。 5. **利用API或JSON Web Token (JWT)**: 如果攻击发生在API层面,攻击者可能会利用API的认证机制,将SQL注入隐藏在合法的API调用中。 6. **社会工程学攻击**: 通过利用用户信任或权限漏洞,让目标用户执行包含SQL注入的恶意操作。 要防止WAF绕过,应不断更新和强化WAF规则,同时采用多重防御策略,比如使用参数化查询、输入验证、异常处理和对用户输入的深度检查。此外,定期审计和安全测试也是防止此类攻击的重要手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值