首页 > 解决方案 > 在 GET 请求中的 nginx access.log 中找到的 URL

问题描述

我正在使用 nginx 管理托管在 aws ec2 上的站点。避免威胁持续监控 nginx 日志(access.log 和 error.log)。尽管通过调整 nginx.conf 可以很好地管理许多威胁,但是我什至无法弄清楚攻击者如何设法发送此类请求。

访问日志
xx.xxx.xx.xxx - - [18/Aug/2021:09:04:13 +0000] "GET http://xxxxxxxxx.com/ HTTP/1.1" 200 1400 "-" "Go-http-client/1.1"

在上述情况下,假设我的网站名称是“h ttp://abc-xyz-1234.com”,攻击者在路径中传递 url(即http://xxxxxxxxx.com/),而 nginx 以“200”响应. 我仍然摸不着头脑,请求是如何提出的,以及用 1400 字节响应的内容(响应长度仍然远小于路径“/”的网站响应站点)。

因为我相信它不可能通过浏览器,所以我尝试使用 curl 进行模拟,但它不起作用。

  1. 它被认为是 2 个单独的 curl 请求
    curl -A Mozilla h ttp://abc-xyz-1234.com/ http://xxxxxxxxx.com

  2. 无效域
    curl -A Mozilla h ttp://abc-xyz-1234.comhttp://xxxxxxxxx.com

  3. 它将使用路径 /http://xxxxxxxxx.com 访问主机并被拒绝。攻击者设法在没有前缀“/”的情况下发送它,这就是试图模拟的内容
    curl -A Mozilla h ttp://abc-xyz-1234.com/http://xxxxxxxxx.com

标签: securitynginxcurlamazon-ec2

解决方案


您可以--request-target为此使用:

curl -A Mozilla http://abc-xyz-1234.com --request-target http://xxxxxxxxx.com

推荐阅读