[HCTF 2018]admin解法二 cookie欺骗

本文详细介绍了在HCTF 2018挑战中,通过分析网页源代码、注册新用户并利用Flask框架的session机制,实现cookie欺骗以获取管理员权限的过程。关键步骤包括:查看源代码,尝试注册admin用户,伪造session,解码并修改cookie,最终成功展示flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[HCTF 2018]admin解法二 cookie欺骗
还是这道题
在这里插入图片描述

第二种解法就是利用cookie欺骗来提权
提权后的用户就是admin
这题先要把所有页面的源代码先看一遍
在这里插入图片描述
这个页面的源代码中发现一句注释
!-- you are not admin –
在这里插入图片描述
可以猜测是需要使用admin的用户来登录才可以看到flag
先尝试注册一个admin的用户
在这里插入图片描述在这里插入图片描述有提示:

The username has been registered
说明已经有admin的用户
那就只有尝试伪造一个admin的用户来登录
那就先随便注册一个账号进行登录
这里注册了一个名叫123的用户
看看登录后的界面
在这里插入图片描述登录后右上角的菜单栏就多了几个选项
在这里插入图片描述逐个看一下源代码
在change password的页面源代码中发现一个提示
在这里插入图片描述

猜测是一个来自github网页下的一个flask文件
Flask是一个使用 Python 编写的轻量级 Web 应用框架。在flask中应该就有web应用中的一些线索,同时flask模板也可以修改对应的cookie
访问该连接地址
在这里插入图片描述
是一个flask文件
将文件进行下载解压之后
在这里插入图片描述
猜测这个web网页的后端服务代码应该就在APP之中
在这里插入图片描述
里面的文件有点多
所有的都看一下,在routes.py中发现
在这里插入图片描述from flask import Flask, render_template, url_for, flash, request, redirect, session, make_response
导入了flask包中的session
说明可以利用修改session的方式来实现cookie欺骗
Flask中的session是存储在客户端的cookie中,也就是存储在本地,Flask对数据进行签名防篡改。而Flask并没有提供加密,所以session可以在客户端中被读取。
在APP的templates文件中发现了页面代码

在这里插入图片描述
打开看看

在这里插入图片描述
{% if current_user.is_authenticated and session[‘name’] == ‘admin’ %}
class=“nav”>hctf{xxxxxxxxx}
代码审计发现
当session的值等于admin时输出hctf{XXXXXXXXX}
就是用admin登录是输出flag
这里应该就是修改session的值,这个session的格式是用.进行分割的
抓包看一下
在这里插入图片描述
发现session的值
这里需要一个session解码器
直接去github里面搜索一个就行
在这里插入图片描述建议这个
下载解压
看了readme之后发现还需要可以可以的值
key的值可以在config.py里面找到
在这里插入图片描述SECRET_KEY = os.environ.get(‘SECRET_KEY’) or ‘ckj123’
在这里插入图片描述
key=ckj123
在这里插入图片描述
解码后将name的值换成admin
然后将编译出来的值放回去就可以看到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值