time_formatter--UAF
[time_formatter]–UAF前言好久没做题了,一直在看链接装载与库,有一说一,这玩意是真的晦涩难懂。最近要开始准备打比赛回来再刷刷题。
这个题挺有意思的,能扩展学习到很多东西。
Find hole先对文件进行基础的分析
64位文件
除了PIE没开其他的保护都开了,FORTIFY是缓冲区溢出检查,用来在编译的时候去替换危险函数。
文件逆向通过分析文件,发现程序就是让我们输入时间,时区,和输出格式,然后调用system函数来运行/bin/data函数来实现功能。
刚开始找了半天hole没找到,看了其他师傅的题解后才找到了。
因为输入格式和时区的函数是用的strdup函数,该函数会调用malloc函数分配一个空间,然后返回该指针。
在退出的时候,程序是先进行free后判断是否继续退出,会导致format指针存储的空间已经是被free掉了的,然后我们选择调用输入时区的函数,就会分配到刚才format的那段空间,我们就可以用这种方式来绕过format的判断语句。
payload找到漏洞和利用方法后,我们就可以来写脚本了
1234567891011121314 ...
tcpdump抓包工具的使用
tcpdump抓包工具的使用一,前言tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。
另外,tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性。tcpdump存在于基本的Linux系统 中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
二、安装1、介质下载:123456http://www.tcpdump.org/release/tcpdump-4.9.3.tar.gz //依赖libpcap 1.9.1,tcpdump的运行需要pcap的支持,所以最好先行安装pcap软件包http://www.tcpdump.org/r ...
Tcache attack
Tcache attack
tcache makes heap exploitation easy again
前言tcache 是 glibc 2.26 (ubuntu 17.10) 之后引入的一种技术(see commit),目的是提升堆管理的性能。但提升性能的同时舍弃了很多安全检查,也因此有了很多新的利用方式。正如前面说的,在2.26后面增加的tcache使得堆的利用更加方便简单了,下面的文章是整理与ctfwiki上的知识和其他大佬的博客的
tcache结构体tcache引入了两个新的结构体,tcache_entry 和 tcache_perthread_struct。
这两个结构体和fastbin结构体很像,但是不太一样。
tcache_entry
123456/* We overlay this structure on the user-data portion of a chunk when the chunk is stored in the per-thread cache. */typedef struct tcache_entry{ str ...
stat函数详解
stat函数详解stat函数
作用:获取文件信息
头文件:include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
函数原型:int stat(const char *path, struct stat *buf)
返回值:成功返回0,失败返回-1;
参数:文件路径(名),struct stat 类型的结构体
struct stat 结构体详解:12345678910111213141516struct stat{ dev_t st_dev; /* ID of device containing file */文件使用的设备号 ino_t st_ino; /* inode number */ 索引节点号 mode_t st_mode; /* protection */ 文件对应的模式,文件,目录等 nlink_t st_nlink; /* numbe ...
starCTF2023-pwn复现
starCTF2023-pwn复现starvmdrop
spaCy基础学习
spaCy基础学习
Solidity内置函数
Solidity内置函数1. 块函数: 可以获取块信息block.timestamp (uint)当前块的实际戳,单位秒。
block.number (uint)当前块高度。
block.difficulty (uint)矿工会用到的出块难度。
block.gaslimit (uint)计算块需要消耗的gas限制,是转账gas和智能合约的执行gas之和
block.coinbase (address payable)矿工地址:块产生的gas费 转账地址。 也是写入块数据的地址
gasleft() returns (uint256)每个块都有执行成本,但是不一定能够完全消耗完。 矿工一般会按照最接近的gas费用来打包出块。gaslefe就是剩下的部分。
2. Message 函数 在合约内获取用户签名后的信息。msg.data (bytes calldata)用户发生的转账之外的内容,可以是文字备注之类的,但是如果接受信息的是智能合约那合约会对data进行解析,并执行date中指定的函数。
msg.sender (address payable)发送信息的发送者
msg.sig (byt ...
Solidity内置函数 - online
Solidity内置函数1. 块函数: 可以获取块信息block.timestamp (uint)当前块的实际戳,单位秒。
block.number (uint)当前块高度。
block.difficulty (uint)矿工会用到的出块难度。
block.gaslimit (uint)计算块需要消耗的gas限制,是转账gas和智能合约的执行gas之和
block.coinbase (address payable)矿工地址:块产生的gas费 转账地址。 也是写入块数据的地址
gasleft() returns (uint256)每个块都有执行成本,但是不一定能够完全消耗完。 矿工一般会按照最接近的gas费用来打包出块。gaslefe就是剩下的部分。
2. Message 函数 在合约内获取用户签名后的信息。msg.data (bytes calldata)用户发生的转账之外的内容,可以是文字备注之类的,但是如果接受信息的是智能合约那合约会对data进行解析,并执行date中指定的函数。
msg.sender (address payable)发送信息的发送者
msg.sig (byt ...
slub allocator之kernel UAF
slub allocator之kernel UAFUAF 即 Use After Free,通常指的是对于释放后未重置的垂悬指针的利用,此前在用户态下的 heap 阶段对于 ptmalloc 的利用很多都是基于 UAF 漏洞进行进一步的利用。
在 CTF 当中,内核的 “堆内存” 主要指的是直接映射区(direct mapping area),常用的分配函数 kmalloc 从此处分配内存,常用的分配器为 slub,若是在 kernel 中存在着垂悬指针,我们同样可以以此完成对 slab/slub 内存分配器的利用,通过 Kernel UAF 完成提权。
内核堆利用与绑核slub allocator 会优先从当前核心的 kmem_cache_cpu 中进行内存分配,在多核架构下存在多个 kmem_cache_cpu ,由于进程调度算法会保持核心间的负载均衡,因此我们的 exp 进程可能会被在不同的核心上运行,这也就导致了利用过程中 kernel object 的分配有可能会来自不同的 kmem_cache_cpu ,这使得利用模型变得复杂,也降低了漏洞利用的成功率。
比如说 ...
Sapido RB-1732 远程命令执行漏洞
Sapido RB-1732 远程命令执行漏洞漏洞介绍sapido 是SAPIDO公司开发的一款家用路由器,其RB-1732系列v2.0.43之前的固件版本存在一处命令执行漏洞。该漏洞的产生原因是。服务器的syscmd.asp 页面没有对传递过来的参数进行过滤,这使得用户以参数的形式将系统命令发送给服务器,并在服务器上执行
漏洞影响1234BR270n-v2.1.03BRC76n-v2.1.03GR297-v2.1.3RB1732-v2.0.43
网络测绘1app="Sapido-路由器"
环境搭建首先下载固件然后binwalk解包

发现是Squashfs文件系统的,然后使用FirmAE搭建环境,或者使用Firmware Analysis Toolkit,但是我的这个环境老是搭建不起,于是使用的是FirmAE
123sudo ./run.s ...