参考自:whoami大佬的
然后自己学习的基础知识在这里:Linux的/proc/self/学习 ++ CTF例题。参考自上面大佬的。自己输出学习一下而已。
一、自己做:

我自己做的时候,没有想找个文件目录穿越,用那些伪协议,来了个便,然后127.0.0.1的ssrf也尝试
这些都是些啥啊!!!
/proc/self/environ
/proc/self/cmdline
二、学到的&&不足:
- 当看到url中有
?file= ...的时候,当然是想到文件包含balabala之类的。同时还可能用PHP伪协议,php://filter啦,或者本地的直接file://,找个file还可以加空格绕过过滤哦,之前有个题做过的,还有?file=http://127.0.0.1/admin.php这样的ssrf也未尝不是不行哦, - 当然啦,还有最最基础的一个:
?file=../../../../etc/passwd这个啦!!! - 然后学习这些:
proc/self/environ和这个,proc/self/cmdline
关于/proc/self/等等相关的知识点,看这个:
三、学习WP
进入题目,一个输入框:

看到url中有个/?url=,本以为是ssrf,但试了试不行,考虑文件包含,我们抓包尝试:
发现确实存在文件包含漏洞。首先尝试直接构造 ?url=../../../../../../../flag 来读取flag失败,看来有过滤

我们要换一种思路,既然存在文件包含,我们不仅可以直接读取文件,也可以通过读取/proc目录中的文件来读取文件。如下,我们读取/proc/self/cmdline来获取启动当前题目进程的完整命令
也就是看看,这个网页是哪个命令开启的
?url=../../../../../proc/self/cmdline

可知,由python2启动了一个app.py文件,我们读一下这个app.py文件:

得到页面源码:
from flask import Flask, Response
from flask import render_template
from flask import request
import os
import urllib
app = Flask(__name__)
SECRET_FILE = "/tmp/secret.txt"
f = open(SECRET_FILE) # 用open()打开/tmp/secret.txt文件,文件描述符为f
SECRET_KEY = f

本文介绍了在BUUCTF的网鼎杯2020白虎组挑战中,如何利用/proc/self/进行文件包含攻击,通过读取进程信息反弹shell。作者详细阐述了从SSRF尝试到文件包含漏洞利用的过程,以及通过爆破获取PID来读取执行文件内容,最终使用Python反弹shell的方法。
最低0.47元/天 解锁文章
877





