[HCTF 2018]admin — flask session 的加密解密

  1. 进入靶场,没什么特殊页面,如果运气足够好的话,账号:admin,密码:123,否则注册一个用户,然后登录抓包,看能否得到有用信息
    [HCTF 2018]admin --- flask session 的加密解密
    后续的一个包,也没什么有用信息,看到 session 这部分,应该是base64编码,尝试了解码未得到结果,登录成功后,尝试其他功能看能否得到有用信息
  2. 修改密码部分,网页源码中有端倪
    [HCTF 2018]admin --- flask session 的加密解密
    访问地址,发现更多有用信息,flask 是 python 的 web 端框架,赶紧搜索了一下 flask session
    Flask的session使用
  3. 利用
    flask中session是存储在客户端cookie中的,也就是存储在本地。flask仅仅对数据进行了签名。签名的作用是防篡改,而无法防止被读取。而flask并没有提供加密操作,所以其session的全部内容都是可以在客户端读取的,这就可能造成一些安全问题。
 (1)session 可以设置/获取
 (2)需要在 config.py 文件中配置 SECRET_KEY
 (3)可以进行伪造,网上找一下 flask session 的伪造方法

flask session 加密解密工具
4. 取用我们自己注册的用户登录成功的 session 进行解密,如下

[HCTF 2018]admin --- flask session 的加密解密

根据题目可知,登录管理员账户应该可得 flag,审计代码的结果发现,在 index.html 中也有提到

[HCTF 2018]admin --- flask session 的加密解密
[HCTF 2018]admin --- flask session 的加密解密
那么我们就用上述解密得到的结果,修改用户名为 admin,再加上 SECRET_KEY 进行加密,伪造 payload

SECRET_KEY 在 config.py 中位 ckj123

import os

class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'ckj123'
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:adsl1234@db:3306/test'
    SQLALCHEMY_TRACK_MODIFICATIONS = True
  1. 根据以上信息,伪造 session
    [HCTF 2018]admin --- flask session 的加密解密
    重新登录,bp 抓包,用伪造的 session 替换原来的 session 即可
    [HCTF 2018]admin --- flask session 的加密解密
    [HCTF 2018]admin --- flask session 的加密解密
  2. 在代码审计的时候,我们发现,注册、登录和修改密码处,都对用户名进行了小写转化~~
    [HCTF 2018]admin --- flask session 的加密解密
    [HCTF 2018]admin --- flask session 的加密解密
    [HCTF 2018]admin --- flask session 的加密解密
  3. 此处应当可做文章,假设第一次注册时,输入用户名转化为 ADMIN ,我们再去修改密码时转化为 admin,这样不就可以绕过登录和注册界面直接修改 admin 密码了么?因此进行 Unicode 编码欺骗;这里原理就是利用nodeprep.prepare函数会将unicode字符ᴬ转换成A,而A在调用一次nodeprep.prepare函数会把A转换成a。
ᴬᴰᴹᴵᴺ -> ADMIN -> admin

用 ᴬᴰᴹᴵᴺ 注册并登录,然后修改密码,即可修改 admin 用户密码

  1. 总结
    Unicode 编码未接触过的东西,搞的有疲惫,ᴬᴰᴹᴵᴺ 这个东西真不好找啊,浪费很长时间在Unicode编码上

Original: https://blog.csdn.net/sinat_34761046/article/details/114991968
Author: Loong-Lee
Title: [HCTF 2018]admin — flask session 的加密解密

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/748168/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球