本地访问 XFF 头

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For:127.0.0.1
Forwarded: 127.0.0.1
X-Requested-With: 127.0.0.1
X-Forwarded-Proto: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-remote-IP:127.0.0.1
X-remote-addr: 127.0.0.1
True-Client-IP: 127.0.0.1
X-Client-IP:127.0.0.1
Client-IP: 127.0.0.1
X-Real-IP:127.0.0.1
Ali-CDN-Real-IP:127.0.0.1
Cdn-Src-Ip: 127.0.0.1
Cdn-Real-Ip:127.0.0.1
CF-Connecting-IP: 127.0.0.1
X-Cluster-Client-IP: 127.0.0.1
WL-Proxy-Client-IP: 127.0.0.1
Proxy-Client-IP: 127.0.0.1
Fastly-Client-Ip: 127.0.0.1
True-Client-Ip: 127.0.0.1
X-Originating-IP:127.0.0.1
X-Host: 127.0.0.1
X-Custom-IP-Authorization: 127.0.0.1

Linux 敏感文件

/proc/[pid]/fd/

在 linux 系统中如果一个程序打开了一个文件没有关闭,即便从外部(如利用 rm -f flag.txt)删除之后,在 /proc 这个进程的 pid 目录下的 fd 文件描述符目录下还是会有这个文件的 fd,通过这个我们即可得到被删除文件的内容

一般情况下可以用 lsof 命令来查看所有打开的文件。该命令会列出系统中所有进程打开的文件,输出的信息包括文件描述符、进程名称、文件路径等

1
lsof
1
2
# 查看 PID 为 1234 的进程打开的所有文件
lsof -p 1234

没有的话可以使用 python 脚本自动化的找到自己所需的文件:

1
2
3
python3 -c "import os;[os.system('cat /proc/'+str(i)+'/fd/3') for i in range(20)];"
# or
python3 -c "import os;[os.system('cat /proc/'+str(i)+'/fd/'+str(j)) for i in range(20) for j in range(10)];"

/proc/self/environ

是一个动态路径,存储了当前进程的环境变量,可以尝试读取这些敏感数据

/proc/1/environ

始终指向 PID 为 1 的进程,包含了 PID 为 1 的进程的环境变量(通常为 init 或 systemd,即系统的第一个进程)