-----已搬运-------BUUCTF: [网鼎杯 2020 白虎组]PicDown --- proc文件的利用, --- python反弹shell ---- python代码审计

参考自:whoami大佬的

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

一、自己做:

在这里插入图片描述

我自己做的时候,没有想找个文件目录穿越,用那些伪协议,来了个便,然后127.0.0.1的ssrf也尝试

这些都是些啥啊!!!
/proc/self/environ
/proc/self/cmdline

二、学到的&&不足:

  1. 当看到url中有?file= ... 的时候,当然是想到文件包含balabala之类的。同时还可能用PHP伪协议,php://filter啦,或者本地的直接file://,找个file还可以加空格绕过过滤哦,之前有个题做过的,还有?file=http://127.0.0.1/admin.php这样的ssrf也未尝不是不行哦,
  2. 当然啦,还有最最基础的一个:?file=../../../../etc/passwd这个啦!!!
  3. 然后学习这些: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)       #
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值