杭师校赛wp
1 签到
一道ret2libc,给了libc版本,脚本如下
2 shellcode
题目告诉了我这道题是shellcode(但如果题目不说的话我经常和libc搞混),发现read只能读取0x12,以往shellcode我都是用shellcodecraft生成,但是这个生成的我记得好像是0x44,总之行不通,在网上搜了很多短的shellcode也都比0x12大,所以这题成为了我第一次手搓shellcode的题,execve(“/bin/sh”)执行的条件是rdi指向/bin/sh然后rsi=0.rdx=0,然后调用execve这个函数实际上是调用系统调用号0x3b,再执行system,通过print知道shellcode的长度为8,所以binsh就在shellcode的后面8位,又因为rdi指向的是shellcode,所以rdi+8就是binsh,通过gdb发现在最后的函数把rsi和rdx都变成0了,那正好就不用管这两个寄存器了,手搓shellcode,脚本如下:
3 密码签到
Gpt梭的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Kong's blog!
评论
WalineGiscus
