通过$HTTP_RAW_POST_DATA验证不严格导致的任意文件上传漏洞

https://blog.csdn.net/huangjingwen1129/article/details/82858573 关于php://input、$_POST、$HTTP_RAW_POST_DATA的理解及区别

$HTTP_RAW_POST_DATA是一个全局获取post数据的参数,php7之后已经弃用

项目中遇到一个php文件如下

 

$open1 = $default_path . basename( $_GET[ 'name' ] ); 
$jfh = fopen($open1, 'w') or die("fail");
fwrite($jfh, $HTTP_RAW_POST_DATA);
fclose($jfh);

正常来讲 直接访问这个链接 如http://xx.com/ok_up.php?name=cmd.txt,会产生cmd.txt文件 内容为空

如果添加post内容,默认会写入cmd.txt失败。因为php post默认的content_type是application/x-www.form-urlencoded,或者当
enctype="multipart/form-data"时也无法使用

$HTTP_RAW_POST_DATA这个参数如果在php.ini的always_populate_raw_post_data为ON时候直接生效

但是默认是off状态。

 

需要把post包里的application/x-www.form-urlencoded改为text/xml或application/json,soap (

application/soap+xml

),上传参数$HTTP_RAW_POST_DATA即可生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值