Nginx 配置错误导致漏洞
1、CRLF注入漏洞
CRLF是”回车+换行”(\r\n)的简称,其十六进制编码分别为0x0d和0x0a。先看payload,因为%0a%0d的存在导致换行。
在HTTP协议中,HTTP header与HTTP Body就是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP内容并显示出来。所以,一旦我们能够控制HTTP消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。CRLF漏洞常出现在Location与Set-cookie消息头中。
输入payload之后可以看到在响应包头里面多了一行set-cookie:a=1。
注入两个%0a%0d还能造成无视浏览器Filter的反射型XSS。可以学习这篇文章https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injection.html
解决的办法就是过滤\r 、\n之类的换行符,避免输入的数据污染到其他HTTP头。
2、目录穿越漏洞
这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名:
location /files {
alias /home/;
}
此时,访问http://example.com/files/readme.txt,就可以获取/home/readme.txt文件。
但我们注意到,url上/files没有加后缀/,而alias设置的/home/是有后缀/的,所以我们访问/files../,就相当于访问/home/../,因为/files等价于于/home/。这个就导致我们可以从/home/目录穿越到他的上层目录。
修复方法:只需要保证location和alias的值都有后缀/或都没有这个后缀。
参考链接
https://www.leavesongs.com/PENETRATION/nginx-insecure-configuration.html
Nginx 配置错误导致漏洞的更多相关文章
- linux异常处理:selinux配置错误导致无法重启
点击返回自学Linux集锦 linux异常处理:selinux配置错误导致无法重启 一次linux无法重启异常记录: 当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更. ...
- Linux在fstab中因配置错误导致服务器主机无法重启的问题应该如何解决
fstab中配置错误导致系统无法启动的恢复方案 1制造错误的案例发生,在/etc/fstab中配置如下内容 结尾的倒数第一个为1表示进行磁盘检查,为0表示不进行磁盘检查,倒数第二个为0表示不备份,为1 ...
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...
- nginx 配置不当导致目录遍历下载漏洞
今天做百度杯的时候发现一个题很有意思. 点进题目,发现了一个js重定向到login.php,抓包发现请求的header中cookie=0,做过这种类似的题目,o==false,在请求头里面将cooki ...
- nginx配置错误页面
有时候页面会遇到404页面找不到错误,或者是500.502这种服务端错误,这时候我们可能希望自己定制返回页面,不希望看到默认的或者是内部的错误页面,可以通过nginx配置来实现. 1 50x错误对于5 ...
- HWADDR配置错误导致network重启失败处理
如果因为/etc/sysconfig/network-scripts/下的ifcfg-eth0(此处以eth0网卡名为例),其中的HWADDR配置错误,不知道到哪里找到原来的HWADDR时,可以尝试一 ...
- nginx配置不当导致的目录遍历下载漏洞-“百度杯”CTF比赛 2017 二月场
题目:http://98fe42cede6c4f1c9ec3f55c0f542d06b680d580b5bf41d4.game.ichunqiu.com/login.php 题目内容: 网站要上线了, ...
- Linux iptables配置错误导致ORA-12535 & ORA-12170
实验环境: 操作系统 : Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库版本: Oracle Databa ...
- Tomcat配置错误导致Quartz执行两次问题
以下基于tomcat服务器 我们通常将域名映射到指定服务器的端口上,以通过域名直接访问服务,如http://www.abc.com域名已绑定到本机的80端口,项目名wechat,则直接访问http:/ ...
随机推荐
- Kali下切换JDK版本
Kali下自由更换JDK版本 今天在学习了一下CobaltStrike之后,打算在Kali上本地搭建一个服务器端, 查看了一下Kali的JDK配置发现版本是13.X的,然而CobaltStrike最好 ...
- Cloudflare DDoS配置案例
导航: 这里将一个案例事项按照流程进行了整合,这样查看起来比较清晰.部分资料来自于Cloudflare 1.DDoS介绍 2.常用DDoS攻击 3.DDoS防护方式以及产品 4.Cloudflare ...
- 9.11、mysql增量备份和增量恢复介绍
1.增量备份: 增量数据是从上次全量备份之后,更新的新数据,对于mysql来说,binlog日志就是mysql的增量数据: (1)按天进行备份: 周一00点全量备份 周二00点全量备份 ...... ...
- c++11 线程间同步---利用std::condition_variable实现
1.前言 很多时候,我们在写程序的时候,多多少少会遇到下面种需求 一个产品的大致部分流程,由工厂生产,然后放入仓库,最后由销售员提单卖出去这样. 在实际中,仓库的容量的有限的,也就是说,工厂不能一直生 ...
- HDU 4821 2013长春现场赛hash
题意: 一个字符串S 问其中有几个子串能满足以下条件: 1.长度为M*L 2.可以被分成M个L长的小串 每个串都不一样 分析: hash方法,一个种子base,打表出nbase[i]表示base的 ...
- SpringCloud:Zuul路由配置超时问题
测试访问时长 修改下业务类,增加sleep休眠时长,以此查看Zuul的熔断 @GetMapping("/test1") public Object test1() { try { ...
- 友链QAQ
队爷 : 天仙队爷%%% H 队:分块带师%%% KBY :比我小还比我强
- c++中的对象模型
1 对象模型的前世 类在c++编译器内部可以理解成结构体,所以在对象模型分析时,我们可以把 class 当作一种特殊的 struct: 1)在内存中 class 可以看作是普通成员变量的集合: 2) ...
- java网络编程基础——TCP网络编程三
AIO实现非阻塞通信 java7 NIO2 提供了异步Channel支持,这种异步Channel可以提供更高效的IO,这种基于异步Channel的IO被称为异步IO(Asynchronous IO) ...
- 使用mvn命令将pom和jar上传至nexus私服
要将自定义的jar或者pom上传至nexus私服,需要配置maven的settings文件! 上传至nexus私服配置 1. settings配置 <!-- maven设置私服对应的信息:id. ...