本文共 577 字,大约阅读时间需要 1 分钟。
在尝试解决Less-26这个SQL注入问题时,我们需要理解当前的过滤机制,并找到有效的绕过方法。以下是优化后的详细步骤和思考过程:
分析过滤机制:
- 过滤函数使用preg_replace去除了一些常见的SQL注入字符,如or、and、/、*、#、--、空格等。
- 由于空格被过滤,传统的利用空格绕过注入的方法不再有效。
寻找替代空格的方法:
- 考虑使用不同的制表符或换行符来代替空格,如TAB、换行符、垂直制表符等。
- 在注入点处插入这些字符,确保它们不会被过滤,并且能够正确执行SQL语句。
构造有效的字符串闭合:
- 由于只能使用一个单引号闭合字符串,需要仔细构造字符串,确保闭合和开合正确。
- 使用双引号闭合前面的字符串,然后在其中嵌入注入点。
构造注入payload:
- 例如,使用双引号闭合字符串,然后插入注入点:''+注入点+''。
- 确保注入点有效,能够绕过过滤机制并执行必要的SQL操作。
验证注入payload:
- 在不同的环境下测试,确保替代空格的字符在各环境中有效。
- 检查注入后的SQL语句是否正确执行,是否能够获取到预期的数据。
确保注入成功:
- 确认注入后的WHERE条件被正确解析,能够筛选出正确的记录。
- 验证是否能够获取到用户的id字段值及其他相关信息。
通过以上步骤,可以有效地绕过过滤机制,成功进行SQL注入,从而解决Less-26这个问题。
转载地址:http://zprc.baihongyu.com/