攻防世界GFSJ1229 Three

题目编号:GFSJ1229

解题过程

1. 附件下载是三个压缩包A.zip B.zip C.zip和一个python程序Three.py


2. A.zip可以直接解压出来,内容如下:

```
'2022-08-27 20:16:04.246131' Func A0*X0+B0
'2022-08-27 20:16:05.116859' Read_Data A0.txt->A0(28829613228241459)
'2022-08-27 20:16:06.097964' Secret_Share A0
'2022-08-27 20:16:07.022455' Get A00(200254991086689) A01(200241552690281)
'2022-08-27 20:16:07.925862' Get X00(200058430391504) X01(200401773940794)
'2022-08-27 20:16:09.077771' Mul_loc_compute A0,X0->C00
'2022-08-27 20:16:10.764928' RGet C02(924422050091355025836012334663090)
'2022-08-27 20:16:11.213530' ReShare C00(random mask is 507412160912)
'2022-08-27 20:16:12.153062' Get B00(199957680670222) B01(200362172648094)
'2022-08-27 20:16:13.100727' Add_loc_compute C00,B00->Y00
'2022-08-27 20:16:13.281906' ReShare Y00(random mask is -1008362525723)
'2022-08-27 20:16:14.017485' RGet Y02(924422050091362838179268571917871)
'2022-08-27 20:16:17.000001' Open Y00
'2022-08-27 20:16:17.000101' RGet Y01(12163251699969281466186532960410)
'2022-08-27 20:16:17.000299' Cyberloafing!!
'2022-08-27 20:16:17.004194' ReBuild Y0
'2022-08-27 20:16:17.013270' Save_Data

```
3. B.zip 和C.zip有密码,查看Three.py,代码加了注释后如下:


```Python
import datetime

import numpy as np

  

# 协议类,用于处理多方参与的加密计算

class Protocol:

def __init__(self, party_num):

# 初始化协议类,指定当前参与方编号 (party_num: 0, 1, 或 2)

self.pn = party_num # 参与方编号 (party_num: 0, 1, 2)

  

def Read_Data(self, path):

# 读取数据文件中的内容,尝试将其转换为数值(整数或浮点数)

data = open(path).readline().strip() # 从文件中读取一行数据并去除首尾空格

try:

if '.' in data:

data = float(data) # 如果数据包含小数点,则转换为浮点数

else:

data = int(data) # 否则,转换为整数

except:

# 如果转换失败,打印错误信息并退出程序

print('No number')

exit(-1)

return data # 返回读取的数据

  

def Get(self, x1, x2):

# 获取两个秘密共享的值 (函数未实现)

pass

  

def RGet(self, x1):

# 获取一个秘密共享的值 (函数未实现)

pass

  

def ReShare(self, x):

### CTFNO.GFSJ0732 错误代码解释与解决方案 对于编号为CTFNO.GFSJ0732的任务,虽然具体描述未直接提供,但从相似案例和其他CTF挑战中可推测该任务可能涉及Web应用安全测试中的特定漏洞利用或解谜环节。 #### 一、错误代码分析 通常情况下,在CTF竞赛场景下,“错误代码”并非传统意义上的编程语言报错信息,而是指参赛者遇到的技术难题或是目标系统给出的异常反馈。针对GFSJ系列题目,常见的“错误代码”形式包括但不限于: - 页面返回非预期状态码(如HTTP 403 Forbidden) - 表单验证失败后的提示消息 - SQL注入尝试时数据库抛出的语法错误 - 文件上传限制导致的操作拒绝通知 这些都可能是解决CTFNO.GFSJ0732过程中会碰到的情况[^1]。 #### 二、潜在原因探讨 基于以往经验,此类问题的发生往往源于以下几个方面: - **权限控制不当**:服务器端未能正确设置资源访问权限,使得某些路径可以直接通过URL访问而无需身份认证。 - **输入校验缺失**:应用程序缺乏有效的参数过滤机制,允许恶意构造的数据绕过前端检查直达后台逻辑层。 - **隐藏功能暴露**:开发者为了调试方便留下的备用接口未及时删除,成为攻击面的一部分。 以上情况均可能导致参与者无法按常规方法完成指定动作,进而触发所谓的“错误代码”。 #### 三、通用解决方案建议 面对上述提到的各种可能性,推荐采取以下措施逐一排查并解决问题: ```bash # 使用curl命令模拟不同类型的HTTP请求 $ curl -X GET "http://example.com/target?param=value" $ curl -X POST -d 'data' http://example.com/post_target ``` - 尝试调整浏览器开发者工具(F12)中的Request Headers部分,修改User-Agent字符串或其他头部信息以规避简单的防护策略; - 利用Burp Suite等中间件拦截并篡改实际发出的HTTP(S)流量,特别是注意观察响应体内的细微差异; - 对于疑似存在文件包含漏洞的情形,则应重点审查.php,.jsp等动态脚本结尾处是否存在可控变量; 最后提醒一点,当涉及到真实环境时务必遵循合法合规原则开展渗透测试活动,切勿滥用所学技能危害他人利益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值