Q1IQ's blog

Archives · All

Home

About

Archives

loading..
CVE

Linux eBPF模块漏洞利用学习记录

技术分析eBPF简介linux的用户层和内核层是隔离的,想让内核执行用户的代码,正常是需要编写内核模块,当然内核模块只能root用户才能加载。而BPF则相当于是内核给用户开的一个绿色通道:BPF(Berkeley Packet Filter)提供了一个用户和内核之间代码和数据传输的桥梁。用户可以用eBPF指令字节码的形式向内核输送代码,并通过事件(如往socket写数据)来触发内核执行用户提供的代码;同时以map(key,value)的形式来和内核共享数据,用户层向map中写数据,内核层从map中取数据,反之亦然。 BPF发展经历了2个阶段,cBPF(classic BPF)和eBPF(extend BPF)(linux内核3.15以后),cBPF已退出历史舞台,后文提到的BPF默认为eBPF。 eBPF..

Read more
loading..
PWN

awd pwn checker编写记录

最近在为awd pwn题写checker,然后我写了个能检测pwn题全部功能是否可以正常使用的脚本,被反馈还需要改进下: 不可以用pwntools库 不能让选手直接nop free,要不选手体验差 pwntools禁用对我这种fw pwn手来说,没了pwntools就是没了胳膊,干啥啥不行。不过对于checker来说,只要有网络通信功能就行,于是找到了一个平替,zio。 from zio import * is_local = True if is_local: io = zio('./buggy-server') # used for local pwning development else: io = zio(('1.2.3.4&..

Read more
loading..
CVE

Linux 蓝牙bleedingtooth CVE-2020-12351学习记录

水一篇分析文章,站在巨人的肩膀上。 漏洞分析CVE-2020-12351,该漏洞CVSS 评分为8.3 分,是一个基于堆的类型混淆(type confusion) 漏洞。在受害者蓝牙范围内的远程攻击者在指导目标设备的bd地址的情况下就可以利用该漏洞。攻击者可以通过发送恶意l2cap包的方式来触发该漏洞,引发DoS 或kernel 权限的任意代码执行。谷歌安全研究人员称该漏洞是一个零点击漏洞,也就是说利用的过程中无需任何的用户交互。 A heap-based 类型混淆 affecting Linux kernel 4.8 and higher was discovered in net/bluetooth/l2cap_core.c. 当 CID 不是 L2CAP_CID_SIGNALING, L2CAP..

Read more
loading..
PWN

Qemu逃逸学习记录

pci设备地址空间PCI设备都有一个配置空间(PCI Configuration Space),其记录了关于此设备的详细信息。大小为256字节,其中头部64字节是PCI标准规定的,当然并非所有的项都必须填充,位置是固定了,没有用到可以填充0。前16个字节的格式是一定的,包含头部的类型、设备的总类、设备的性质以及制造商等,格式如下: 比较关键的是其6个BAR(Base Address Registers),BAR记录了设备所需要的地址空间的类型,基址以及其他属性。BAR的格式如下: 设备可以申请两类地址空间,memory space和I/O space,它们用BAR的最后一位区别开来。 当BAR最后一位为0表示这是映射的I/O内存,为1是表示这是I/O端口,当是I/O内存的时候1-2位表示内存的类型,bi..

Read more
loading..
PWN

GeekPwn热身赛 2020 wp

playthenew久闻Tcache Stashing Unlink Attack大名一直不会,今日就着这题学习一下。 [Glibc中堆管理的变化][https://www.freebuf.com/articles/system/234219.html] 漏洞原理[Tcache Stashing Unlink Attack原理][https://blog.csdn.net/seaaseesa/article/details/105870247] Tcache Stashing Unlink Attack利用了calloc的分配特性,calloc不从tcache bin里取chunk,而是会遍历fastbin、small bin、large bin,如果在tcache bin里,对应的size的bin不为空,..

Read more
loading..
CVE

D-Link CVE-2019-7298学习记录

漏洞分析使用binwalk提取固件。 可以看出文件系统是 squashfs 。 内核启动之后将启动init进程,init进程启动时根据/etc/inittab这个文件来在不同运行级别启动相应的进程或执行相应的操作。其中sysinit代表系统的初始化,只有系统开机或重新启动的时候,后面对应的process才会执行。 ::sysinit:/etc/init.d/rcS 在rcS中,先执行一系列mkdir和设置,接着执行goahead。 goahead 是一个开源的 web 服务器,用户的定制性非常强。可以通过一些 goahead 的 api定义 url处理函数和可供 asp 文件中调用的函数,具体可以看看官方的代码示例和网上的一些教程。 goahead的websUrlHandlerDefine函数允许用户..

Read more
1234