首页 > 其他分享 >pwn3&4

pwn3&4

时间:2022-12-10 17:57:08浏览次数:43  
标签:pwn3 sh shellcraft ljust shellcode payload asm

pwn第二次作业

ret2shellcode

适用范围

没有后门函数 有rwx段(目前的初级题目)

方式

过程

将shellcode写入变量中 然后栈溢出劫持retaddr 然后执行

注意:当可用空间不足时shellcode可以写在返回地址后面,只要在书写payload时将地址篡改为返回地址后即可。

执行格式
shellcode=asm(shellcraft.sh())
len=buf长度+8
x = shellcode.ljust(len,'a')
p.recv()
p.sendline(x + p32(buf2_addr))

shellcraft

  • 其为pwntools下的一个工具 功能为生成shell

  • 方法有两种

    1. shellcode = "\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"

    2. from pwn import *
      shellcode=asm(shellcraft.sh())

      • 此默认为32位程序

      • 若想输出64位则输入shellcode=asm(shellcraft.amd64.sh)

        并且在此之前加入contest.arch="amd64"

      • asm为将汇编语言转化为机器码

      • shellcraft.sh()为生成一个shellcode

  • 在输出payload的时候因为难以数清楚payload具体字节数 因此我们选择利用ljust函数

    e.g:payload=asm(shellcraft.sh()).ljust(112,b'A')

    ljust(n,‘A’)功能:输入i个字符‘A’(i为总长度n减去已输入的长度的长度) 其中n为总长度,A为主要填充数据

ret2syscall

适用范围

没有后门函数 没有system函数 但是有/bin/sh或者cat flag

多用于静态链接的题目中。

方式

image

过程

我们可以先ropgadget,看程序中是否有mov eax等片段,如果有,我们就可以利用这些gadget来组合成一个shell来获取控制权

执行格式:

image

ROPgadget使用

使用格式

​ ROPgadget --binary 文件名 --only "pop|ret"

标签:pwn3,sh,shellcraft,ljust,shellcode,payload,asm
From: https://www.cnblogs.com/AI-ruo/p/16971979.html

相关文章