LJH*_*JHW 0 apache django ubuntu web-services
我将要使用一个网站并解决安全问题。该网站已经公开一段时间,但未链接到搜索引擎。
我记录了所有传入请求,今天注意到了这一请求:
GET /home/XXXXX/code/repositories/YYYYY-website/templates
Run Code Online (Sandbox Code Playgroud)
其中XXXXX是我的服务器上的sudo用户,而YYYYY是我的公司名称。这实际上是我的Django项目代码的结构。我的网站使用Django编码,并在Ubuntu上的Apache2下运行。我的问题是,为了创建此请求,此人如何才能知道服务器上的基础代码/目录结构?
他们的IP是:66.249.65.221 他们在https://ip-46.com上成为100%的黑客
欢迎任何贡献。
编辑1 25/11/2019
在Loïc的帮助下,我进行了一些调查。
就登录而言,Ubuntu 18.04服务器已被锁定-您只能使用我的一个私钥进入。PostgreSQL已被锁定-它仅接受来自我的开发机器所在的一个IP的连接。RabbitMQ已被锁定-它不接受任何外部传入连接。robots.txt允许所有爬网,但robots元数据仅限制访问12页。
知道Django的人会知道如何创建此目录路径(如果他们知道Django项目目录,但他们也具有相对于服务器根目录的相对路径)。唯一可用的位置在Apache2配置文件中。显然,Apache需要知道从哪里获取Django Web服务器。
我99%确信此“黑客”通过对Apache的某种命令获得了此信息。一切都重定向到端口443 https。上面的GET请求实际上不执行任何操作,因为url不存在。
因此,使问题更加细化。黑客如何从我的Apache2配置文件中提取我的Django绝对项目路径?
有很多不同的方法来了解给定服务器的目录结构。
最简单的通常是错误日志;如果在django设置DEBUG中将设置为True,则攻击者很容易获得项目的目录结构。
然后是LFI,这是一个安全问题,攻击者可以读取本地文件。然后可以读取一些日志或apache配置以了解您的项目目录是什么...
问题也可能来自服务器上运行的另一项服务。
一个人不能真正为您提供有关此主题的完整答案,因为可能有很多不同的方式。