【原创】python-shellcode常用库(pwntools、socket、os、nc)

[huayang]

pwntools

连接本地(process)

p = process('./stack')

连接远程(remote)

p = remote("111.231.70.44",28010)

打包(p32/p64)

payload = 'b' * 13 + p32(0x804850f)

payload = 'b' * 13 + p64(0x804850f)

解包(u32/u64)

puts_addr = u32(io.recv(4))

puts_addr = u64(io.recv(4))

发送数据(sendline)

p.sendline(payload)

与shell交互(interactive)

p.interactive()

获取ELF(二进制文件、可执行文件)文件的信息(elf)

对elf文件进行操作,可以获取elf文件中的PLT条目和GOT条目信息

ELF必须大写

elf = ELF('./pwn')

文件装载的基地址(address)

hex(elf.address)

获取函数PLT地址(plt)

这里为获取文件里函数puts由plt表指向got表的地址

意思就是这个函数要看这个地址才能在got表中找到

puts_plt = elf.plt['puts']

获取函数got表地址(got)

puts_got = elf.got['puts']

获取函数地址(symbols)

main_addr = elf.symbols['main']

设置环境的功能(context)

context.log_level = 'debug'

一般来说我们设置context只需要简单的一句话:

context(os='linux', arch='amd64', log_level='debug')

或者 context(os='linux', arch='amd64')
意思是:

1. os设置系统为linux系统,在完成ctf题目的时候,大多数pwn题目的系统都是linux
2. arch设置架构为amd64,可以简单的认为设置为64位的模式,对应的32位模式是’i386’
3. log_level设置日志输出的等级为debug,这句话在调试的时候一般会设置,这样pwntools会将完整的io过程都打印下来,使得调试更加方便,可以避免在完成CTF题目时出现一些和IO相关的错误。

运行到字符串位置停下(recvuntil)

p.recvuntil(“字符串”)

停下后就可用于输入了

一般可以直接省略字符串,有几行就几个换行

比如:

有一行

我们可以写为

io.recvuntil("Doing Stuffz...")
或
io.recvuntil("\n")

这里有两行我们就可简写为

io.recvuntil("\n\n")

用recv函数接收输出的put地址(recv)

p.recv(4)

十六进制输出(hex)

一般所有输出都要转换为16进制

print hex(puts_addr)

socket

创建socker实例(socket)

socket.socket()  

连接服务器端(connect)

s.connect(('127,0.0.1',8009))

接收TCP数据,1024为一次数据接收的大小(recv)

s.recv(1024)

发送TCP数据(send)

s.send(('TRUN .' + 'A'*50 + '\r\n'))

用传输完毕后(close)

s.close()

OS

system函数可以将字符串转化成命令在服务器上运行(简单来说就是调用命令行)

os.system('./elf')

NC

nc -lp 2333

[/huayang]

==>转载请注明来源哦<==
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇