CTF学习笔记——[HCTF 2018]admin

本文详细记录了参加[HCTF 2018]admin挑战的过程,涉及Flask框架下的session伪造和Unicode欺骗两种解题方法。通过分析源码和利用Flask session加密算法,成功伪造session登录admin账户。同时,利用Unicode转换漏洞注册特殊用户名覆盖原有admin密码。此外,还讨论了弱口令在CTF挑战中的常见应用。
摘要由CSDN通过智能技术生成

一、[HCTF 2018]admin

1.题目

在这里插入图片描述

2.解题步骤

这个靶场还是很完整的,注册登陆一应俱全,还有留言板。注册和登陆部分尝试了一下,大部分我认知中的注入都被过滤了。于是老老实实注册了个账号。发现里面有个留言板。这不就是师傅们经常攻击的地方吗~
在这里插入图片描述
随便注入的两下没什么反应,看看源码呢~
在这里插入图片描述
嗯?这个注释?
在这里插入图片描述
虽然能猜到这个是网站的源码,但由于没有网页的开发经验,所以很遗憾还是没看出什么门道~看WriteUp!
说实话看完之后有点被震撼到。跟着师傅们把三种做法都过一遍~
这道题的突破口首先是github上的提示flask。

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。[百度百科]

这样来看,这是一道模板注入类型的题目。

然后进行源码审计。
在这里插入图片描述
首先是发现库中有两个账号,可惜密码被加密了~
接下来就是几种登陆admin的方式

(1)flask session伪造

什么是Session?
在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。[百度百科]

在测试靶场网页的时候就发现了,比如登陆之后再刷新网页,他依旧会显示登陆者的名字
在这里插入图片描述
这个功能是靠session实现的。把账号的信息临时储存在我的电脑上(客户端)。只有在关闭浏览器才会销毁session信息。这是一种方便的机制。这里有个大神的博客讲的很好,指路一下~

session要求浏览器必须支持cookie功能,那么对于session的伪造,是否和cookie伪造类似呢?
这道题的session在这个位置:

[HCTF 2018]WarmUp是一个CTF比赛题目,其中涉及到一个叫做emmm的类。这个类中有一个名为checkFile的方法。checkFile方法的作用是对传入的$page参数进行检查。在方法中,首先判断$page是否存在并且是字符串类型,如果不满足条件,则输出"you can't see it"并返回false。接着,将$page与白名单数组$whitelist进行匹配,如果匹配成功,则返回true。如果没有匹配成功,则继续进行下一步操作。 下一步操作中,先对$page进行一次截取操作,截取到第一个问号之前的部分,将截取结果赋值给$_page。然后再次对$_page进行白名单匹配,如果匹配成功,则返回true。如果匹配不成功,则对$_page进行二次URL解码,并再次进行一次截取操作,将结果赋值给$_page。最后再次对$_page进行白名单匹配,如果匹配成功,则输出"sdf you can't see it"并返回true。如果都不满足条件,则输出"you can't see it"并返回false。 这个题目的前身是一个cve漏洞(phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613))。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[HCTF 2018]WarmUp](https://blog.csdn.net/m0_62709637/article/details/125022518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值