CTF刷题记录Buuctf_N1BOOK——afr_3
Posted 山川绿水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF刷题记录Buuctf_N1BOOK——afr_3相关的知识,希望对你有一定的参考价值。
**
N1BOOK——afr_3
**
一、解题思路
1.打开题目发现一个输入框
既然是web题的话,还是先查看页面源代码
就发现使用的是POST的提交方式,没办法,只能看这个框的秘密所在了
2.直接输入1进行查询
页面提示说,你为什么不看我们的文章呢?这里是个出发的按钮,点击
3.又有提示说明,这是一篇示例文章?内心充满了困惑??????
抬头一看,URL好奇怪
http://80a3f61d-704d-4c38-b615-158bab104673.node3.buuoj.cn/article?name=article
这个URL的后面name通过get得到的值不同,可能会出现路径穿越或文件包含漏洞
测试:name=flag
4.name=index
测试到这的话,就可以很容易的推测出,此处利用是路径穿越漏洞
http://80a3f61d-704d-4c38-b615-158bab104673.node3.buuoj.cn/article?name=…/…/…/…/…/proc/self/cmdline
5.获取了当前系统使用的server.py文件
执行以下命令,得到源代码
http://80a3f61d-704d-4c38-b615-158bab104673.node3.buuoj.cn/article?name=…/…/…/…/…/proc/self/cwd/server.py
6.将源代码挡下来,代码审计了一波
发现:key.py可以访问得到key
http://80a3f61d-704d-4c38-b615-158bab104673.node3.buuoj.cn/article?name=…/…/…/…/…/proc/self/cwd/key.py
key:
Drmhze6EPcv0fN_81Bj-nA
7.代码的大体意思是,有两种路径,一种是/1page,一种是/article,而前者存在ssti漏洞,我们需要将n1code参数及其值装进session中,然后进行传参,达到ssti的目的。
加密脚本的获取方式
git clone https://github.com/noraj/flask-session-cookie-manager
这个脚本需要使用python3.x的版本进行运行,可以使用kali自带的python3,这期间可能会报错,主要的原因是你所需的库,没安装,需要自行安装。
8.当我们使用脚本得到session时,我们需要抓包,进行伪造cookie,得到flag
n1book{afr_3_solved}
二、知识点
1.Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其常见的文件系统不同的是,/proc是一种伪文件系统(即虚拟文件系统),存储的是当前内核运行状态的一系统特殊文件,用户可以通过这些文件查看这些关于硬件及当前正在运行进程的信息,甚至可以通过更改其中的某些文件来改变内核的运行状态。
/proc/[pid],当查看当前进程的时候可以用/proc/self代替
cmdline——启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息
cwd——指向当前进程运行目录的一个符号链接
environ —— 当前进程环境变量列表,彼此间用空字符串(NULL)隔开;变量用大写字母表示,其值用小字母表示。
2.FLASK之session伪造
通过使用python的模板注入,然后根据脚本, 获得session
参考链接:
https://blog.csdn.net/qq_44657899/article/details/104594655
https://blog.csdn.net/RABCDXB/article/details/115189884
以上是关于CTF刷题记录Buuctf_N1BOOK——afr_3的主要内容,如果未能解决你的问题,请参考以下文章