本题为Nu1L团队编著的《从0到1:CTFer成长之路》配套题目。来源网站:https://book.nu1l.com/
经过多方查阅资料,发现题目是,由于Nginx配置不当产生了目录穿越漏洞。本题使用的是OpenResty,而OpenResty是基于Nginx与Lua实现的,所以Nginx存在的漏洞,OpenResty同样也可能存在。而且这不是代码里面的漏洞,配置漏洞的话大概率是被放在危险性比较低的位置上的。
Nginx配置不当导致目录穿越
漏洞成因:
上面这里说的很清楚了,因为在配置static文件夹的时候,忘记在最后面加上/
,导致访问/static../
的时候,会被替换为path/to/static/../
,从而导致目录穿越漏洞。
若是加上了/
,访问/static../
就会404 NOT Found错误,则不会导致目录穿越。
漏洞利用
首先是验证漏洞存在,在访问static文件夹的时候,尝试访问/static../
,若返回上级目录的内容,则存在此漏洞。
对于本题来说,static文件夹是/img/
,验证此漏洞只需要访问/img../
即可。返回的内容如下图所示。
此处说明存在漏洞,点击flag即可下载文件,此处是任意文件读取漏洞,危害不小。
n1book{afr_2_solved}
参考链接
nginx配置错误导致的目录穿越漏洞
alias_traversal Path traversal via misconfigured alias