sql注入内联注释过waf

本文介绍了如何通过内联注释技巧来绕过Web应用防火墙(WAF)的过滤。首先尝试使用`order by`被拦截,接着发现单独的`order`和`by`不被拦截。通过在关键字前后加入注释干扰,配置Burp Suite进行爆破测试。通过调整字符集并使用payload进行干扰,成功避开了WAF的检测。然后进行了`order by`和`union select`查询,获取了数据库信息、表名和列名。最终,通过查询特定uid的用户信息,展示了SQL注入的实战过程。
摘要由CSDN通过智能技术生成

sql注入内联注释过waf

正常输入:1
在这里插入图片描述
然后尝试:-1 order by
在这里插入图片描述在这里插入图片描述

被拦截

然后单独尝试order或者by
在这里插入图片描述

单独的order或者by并没有被拦截,内联注释干扰黑名单检测

-1/**/order/**/by 3
在这里插入图片描述

只是简单的/**/也被过滤了,那么就在/**/中间加干扰

-1 and 1=1来进行测试,burp抓包,然后在被过滤的关键字前后加注释,注释中间用§ §来进行爆破定点,配置如下

SQL注入是一种常见的网络安全漏洞,攻击者通过输入恶意SQL代码来操纵数据库查询。内联注释通常用于在SQL语句中添加解释或说明,但它们也可能被利用来进行绕过防御。当应用对用户输入的SQL执行时,如果处理不当,攻击者可能会尝试使用特殊的字符序列来隐藏恶意代码,同时保持注释的外观。 以下是一些常见的内联注释绕过方法: 1. **分号 (;) 注释**: 攻击者可能会在恶意SQL后紧跟一个分号,使其看起来像是正常的注释。然而,这会让后续的恶意SQL被执行,如`SELECT * FROM users -- ; UNION ALL SELECT username, password FROM users;`。 2. **单引号 (') 或双引号 ("):** 在某些系统中,引号用于界定字符串,但也可以用来包裹SQL语句。攻击者可能利用这一点,比如`SELECT * FROM users WHERE name = ' OR 1=1 -- '`,使得`name`字段包含了一个可以导致条件为真的额外条件。 3. **空格和换行:】在SQL中,空格和换行通常是无关紧要的,但攻击者可以利用这些来构造更复杂的SQL结构,例如`SELECT * FROM users WHERE name = ' OR '1=1 --`。 4. **注释终止符(--) 结合使用:** 如果系统支持在注释中嵌套,攻击者可能会尝试使用`--`终止正常的注释,并开始新的恶意注释,如`-- SELECT * FROM users -- -- UNION ALL SELECT * FROM sensitive_data;`。 防止这种攻击的方法包括: - **参数化查询/预编译语句**: 这种技术会将用户输入的数据作为参数而不是直接拼接到SQL语句中,能有效防止SQL注入。 - **输入验证和转义**: 对用户提供的数据进行严格的格式检查和转义特殊字符。 - **使用安全的数据库API**: 许多现代框架提供安全的API来处理数据库交互。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值