ctf练习之Check your source code

本文介绍了一种通过分析目标站点源代码中的source.txt文件,发现登录判定逻辑漏洞的方法。利用burpsuite设置代理,解码ahash值,确定secret对象的值。构造新的cookie值,实现无需正确密码即可登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、进入目标站点,查看源代码,发现可能存在source.txt文件

在这里插入图片描述

二、找到source.txt文件,发现如下判定,说明只要用户为admin密码不为admin且cookie合适就可以登录,最后一行设置了cookie。

在这里插入图片描述

三、打开burp suite并设置代理,可以看到如下cookie,将ahash的值进行base64解码,得到:88adminadmin,所以由cookie的构造(上面的setcookie函数)可知,secret对象的值为88.

在这里插入图片描述

三、构造cookie值,base64编码的88+admin+123并且把ahash改为check即可。

在这里插入图片描述

### CTF WGPSEC JSON 格式的解析 在处理CTF竞赛中的WPGSEC数据时,通常会遇到JSON格式的数据交换。这种格式用于表示结构化的信息,便于机器读取和人类理解。 #### JSON基本语法特点 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据[^2]。对于CTF比赛而言,了解如何解析这些数据至关重要。 #### 示例:典型的CTF WGPSEC JSON对象 下面是一个简化版的例子,展示了可能出现在CTF挑战赛里的JSON字符串: ```json { "challenge": { "name": "Web Exploitation", "description": "Exploit a web application vulnerability.", "hints": [ {"hint":"Check the source code"}, {"flag_format":"flag{.*}"} ], "points": 300, "solves": 15, "category": "web" } } ``` 此段代码定义了一个名为`challenge`的对象,包含了有关特定题目的一些属性,比如名称、描述以及提示等字段。值得注意的是,这里还存在一个数组类型的成员变量——`hints`,用来列举多个解题线索。 #### Python解析方法 为了更好地理解和操作这类数据,在Python中可以利用内置库`json`来进行加载与转换工作: ```python import json data = ''' { "challenge": { "name": "Web Exploitation", "description": "Exploit a web application vulnerability.", "hints": [{"hint":"Check the source code"},{"flag_format":"flag{.*}"}], "points": 300, "solves": 15, "category": "web" } } ''' parsed_data = json.loads(data) print(f'Challenge Name: {parsed_data["challenge"]["name"]}') for hint in parsed_data['challenge']['hints']: print(f'- Hint: {hint["hint"]}') ``` 这段脚本首先导入必要的模块并定义了一串包含上述示例内容的多行字符串;接着调用了`loads()`函数将其转化为字典形式以便后续访问各个键对应的值;最后通过简单的循环打印出了所有的提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值