http参数污染利用php小特性绕过贷齐乐waf

ops/2024/11/14 5:56:09/

目录

分析源码

php的特性

php另外一个特性

实现注入

联合查询注入

爆库

爆表名

爆列名

爆出flag


分析源码

GET/POST/REQUEST/COOKIE都会经过这个替换str_ace(array('&', '"', '<', '>','(',')'), array('&', '"', '<', '>','(',')'), $string)

GET/POST/REQUEST三个变量,都会经过这个正则:select\|insert\|update\|delete\|'\|/\*\|\*\|\.\./\|\./\|union\|into\|load\_file\|outfile

一旦遇到select,包括单引号,包括注释符,就立即exit整个流程

这个过程等于手工处理了一遍REQUEST\_URI,将REQUEST\_URI中的字符串分割成数组覆盖到REQUEST里。

按道理来说并没有什么大错误,但试想:这个过程是在我们的第一道WAF之后进行的,假设我们有一个方法让第一道WAF认为请求中没有恶意字符,再通过这里的覆盖,将恶意字符引入$_REQUEST中,就可以造成WAF的绕过了。

所以怎么样才能让第一个waf认为我们的请求没有恶意字符呢?

php的特性

php中他会取最后一个值

假设我有一个办法,在第一次WAF检测参数的时候,检测的是2,但后面覆盖request的时候,拿到的是1,那么不就可以造成WAF的绕过了么?

虽然没有报错,但这里我们两个传参都是用的i_d,最终我们进入到查询语句中的时候他还是只会取第二个值

所以这里并没有意义

php另外一个特性

php另一个特性,自身在解析请求的时候,如果参数名字中包含” “、”.”、”[“这几个字符,会将他们转换成下划线。

那如果我发送的是这样一个请求: php?i_d=11111&i.d=22222 ,php先将i.d转换成i_d,即为php?i_d=11111&i_d=22222 ,再获取到的$\_REQUEST i_d就是22222。

可在$\_SERVER\['REQUEST\_URI'\]中,i_d和i.d却是两个完全不同的参数名,那么切割覆盖后,获取的$\_REQUEST\['i_d\]却是11111。

实现注入

联合查询注入

发现我们其实是可以绕过的

爆库

用limit观察

爆表名

爆列名

爆出flag


http://www.ppmy.cn/ops/93293.html

相关文章

TRP00F (剥皮机) 自动化权限提升工具

TRP00F 项目地址:https://github.com/MartinxMax/trp00f TRP00F 是一个完全自动化的 Linux 权限提升工具。被控制的端点通过反向 Shell 连接到权限提升机器&#xff0c;而权限提升机器将自动将权限提升到指定的攻击者机器。 TRP00F 是一个活跃维护和更新的工具&#xff0c;随…

C++新特性-智能指针

std::weak_ptr std::weak_ptr是一种弱引用&#xff0c;它不能单独使用&#xff0c;设计之初是为了配合std::shared_ptr&#xff0c;解决后者设计上存在的问题。 使用注意&#xff1a; 不能直接指向原始指针:std::weak_ptr<int> wp (new int);只能指向std::shared_ptr对象…

系统架构师案例分析题的解题技巧

1. 仔细阅读题目 确保理解题目所描述的系统背景、需求和问题。标注关键信息&#xff0c;如系统的规模、业务特点、性能要求等。 2. 明确问题类型 判断是关于架构设计原则、质量属性优化、技术选型还是其他方面的问题。例如&#xff0c;如果是关于性能优化的问题&#xff0c;要重…

MySQL 存储引擎之MyISAM

MyISAM 是 MySQL 中的一个存储引擎&#xff0c;它在 MySQL 的早期版本中非常流行&#xff0c;并且在某些特定的应用场景下仍然有其独特的优势。 MyISAM 存储引擎特点&#xff1a; 不支持事务&#xff1a;这意味着一旦发生崩溃&#xff0c;恢复过程可能比较复杂。表锁&#xff…

部分性能探索

函数节流 函数节流是指在一定时间内只执行一次函数&#xff0c;比如鼠标滚动事件&#xff0c;如果没有限制&#xff0c;那么每次鼠标滚动都会触发大量事件&#xff0c;导致浏览器卡顿甚至崩溃&#xff0c;而通过函数节流可以使得事件执行稳定流畅。 function throttle(fn, wai…

同构字符串

给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符&#xff0c;同时不改变字符的顺序。不同字符不能映射到同一个字符上&#xff0c;相…

Django中的Q对象

文章目录 Django中的Q对象三种使用方式Q对象中常用的属性或方法 Django中的Q对象 from django.db.models import Q在Django框架中&#xff0c;Q 对象是 django.db.models.Q 的一个实例&#xff0c;它用于创建复杂的查询表达式。 Q 对象允许你构建包含多个条件的查询&#xff0c…

【网络】代理服务器

目录 正向代理 反向代理 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 正向代理 正向代理&#xff08;Forward Proxy&#xff09;是一种常见的网络代理方式&#xff0c;它位于客户端和目标 服务器之间&#xff0c;代表客户端向目标服务器发送请求。正向代理服务器接收客户…