Path traversal
路径(目录)遍历是一种漏洞,攻击者能够访问或存储外部的文件和目录 应用程序运行的位置。这可能会导致从其他目录读取文件,如果是文件,则会导致读取文件 上传覆盖关键系统文件。
它是如何工作的?
例如,假设我们有一个应用程序,它托管了一些文件,并且可以在下面请求它们 格式:http://example.com/file=report.pdf
现在,作为攻击者,您当然对其他文件感兴趣,所以 你试试http://example.com/file=…/…/…/…/…/etc/passwd/etc/passwd…/在这种情况下,您尝试爬到文件系统的根目录 然后进入以获取对此文件的访问权限。称为点-点-斜杠,这是这种攻击的另一个名称
参考:https://blog.csdn.net/qq_53079406/article/details/127140512
0x02
题目要求把文件传入/home/webgoat/.webgoat-8.2.2/PathTraversal/username目录下,
1、直接上传文件,发现文件被传到/home/webgoat/.webgoat-8.2.2/PathTraversal/test/test
2、猜想存在注入,修改fullname为…/test,即可上传到/home/webgoat/.webgoat-8.2.2/PathTraversal/test
0x03
过滤了…/,但是可以使用双写绕过…//
0x05
题目要求找到图片path-traversal-secret.jpg
抓包,在response的Location中看到参数为id
直接用id请求返回400
…/提示不合法
编码绕过 ?id=%2e%2e%2fpath-traversal-secret.jpg 返回400
双写编码 ?id=%2e%2e%2f%2e%2e%2fpath-traversal-secret.jpg 返回400
?id=%2e%2e%2f%2e%2e%2fpath-traversal-secret 返回 You found it submit the SHA-512 hash of your username as answer
将用户名用sha512编码结果作为answer提交通过。
Zip Slip 漏洞
在上传zip文件的地方,上传压缩包文件,后端解压压缩包保存其中的文件到服务器本地。
漏洞成因:待上传的压缩包中可以构造条目名,后端保存文件的时候,常常将条目名提取出来并和保存目录拼接作为最后的保存文件路径,但是压缩包是可控的,从而其中保存的原始条目名也是可控的,因此可以在文件名处利用…/跳转到任意目录,从而向任意目录写入新文件或者覆盖旧文件
如果一个zip文件包含内容为 …/…/…/…/…/…/…/tmp/evil.sh
那么这个文件最后会被保存到/tmp/evil.sh