X1ng

PWN for fun

qemu pwn

学习qemu pwn题目的调试和漏洞利用方法

拖了很久的虚拟化学习,主要是通过例题了解在ctf题目中的调试和漏洞利用 qemu原理 每个qemu虚拟机都是宿主机上的一个进程,在进程中用mmap分配出大小为0x40000000字节的宿主机的虚拟内存来作为虚拟机的物理内存 PCI设备有其配置空间来保存设备信息,头部最开始的数据为Device id和Vendor id 设...

kernel pwn入门之路(三)

开启slub副本|kaslr探索

初步认识slub分配器、学习一般kaslr题目的调试和利用思路以及绕过一些奇怪的保护 slub slub相关的内容: linux 内核 内存管理 slub算法 (一) 原理_卢坤的专栏-CSDN博客 链接中所说的空闲对象的next指针是保存在对象的一定偏移处的,该偏移可以通过config定义(如ubuntu或centos中该偏移就不为0),在本题的内核文件中偏移为0 SUCT...

L3HCTF2021

pwn wp

打满48小时,肝痛,无手速和一调试就懵逼党第一次抢到了三血,最后的小失误错失pwn ak slow-spn 程序从flag.txt中读取6个字符的key和4个字符的plaintext,然后8次通过s盒或p盒的变换后放进模拟的cache中 cache的逻辑是可以多次模拟访问s盒中的地址,如果cache命中了该地址则使用最近最久未使用算法计数,未命中则sleep(1)模拟读取内存的...

两种Large bin attack总结

pig and banana

具体的原理参考资料中大师傅的文章已经写的很清楚了,没有必要抄一遍,所以只记录一下利用的方法 本文测试环境为libc-2.31 简介 house of pig和house of banana都是通过large_bin attack(house of pig还需要用到Tcache stashing unlink plus)来向一些结构体指针写入堆地址,从而达到劫持结构体中的指针的目的 T...

PWN-ORW总结

在无法执行命令的沙箱环境下拿到flag

平时比赛看到orw的题基本丢给队友,学习总结一下相关的知识 题目附件 介绍 CTF中这类PWN题目通常通过禁用execve系统调用添加沙箱,不能直接执行命令getshell,这时候需要通过调用open、read、write这样的函数打开flag,存到内存中,再输出 将三个函数开头字母作为简称,也就是orw 可以通过seccomp-tools来判断是否添加沙箱,以及查看沙箱的规则 ...

浙江2021省赛

初赛pwn的wp

开始比赛前发现IDA打不开了。。。。难度不大,但是学到了新知识,,感谢 @Alter赛后科普house of strom 太菜了太菜了 sxmz 逻辑很简单,输入shellcode,通过特定检测后直接执行shellcode,输入的字节为\n会填充对应位置内存为\x00,检测字符的时候遇到\x00结束检查,让shellocde的首字节为\x00绕过检查,首字节为\x00的汇编语句大多是形...

ASUS栈溢出漏洞分析

华硕路由器漏洞挖掘

该漏洞为华硕RT-ax56u路由器httpd服务中身份验证后的栈溢出漏洞,由于该路由器在身份验证后可以自行开启telnet/ssh,而通过telnet/ssh登陆获取shell后已经是最高权限用户,所以该漏洞几乎没有被恶意利用的可能 本文从挖掘漏洞的角度分析该漏洞,仅供学习用途,有不足之处敬请指出 or2 文章首发ChaMd5安全团队公众号 相关信息 ASUS 2021/10/07更...

CVE-2021-29083漏洞复现

复现群晖DSM某服务漏洞

搜集相关信息 搜了一大圈只能找到同一句漏洞描述,随便摘了一个 https://www.cvedetails.com/cve/CVE-2021-29083/ Improper neutralization of special elements used in an OS command in SYNO.Core.Network.PPPoE in Synology DiskSt...

RCTF2021

pwn wp

MISC佬鲨疯了,,虽然最后一晚熬夜肝了一题保住了前十,但太菜了最后还是没做出来Pokemon 比赛时做出来的题目的wp…… sharing 在实现的对象复制时使用浅拷贝,并且使用了引用计数 在申请的时候如果对象数组中目标位置已经有对象了则会先申请对象再释放原来的对象 hint分支中可以将任意地址中的数据减2,但是需要hint为长度16的字符串并且所有字符16进制相加...

学习C++PWN

C++ 逆向分析学习笔记

重新学了一下c++在内存中的实现情况,但是并没有结合题目 以32位 VC++ 6.0 为例,64位或者gcc应该差不多 类与结构体的访问控制 在编写源程序的时候类与结构体的最显著的区别在于类默认的访问控制为private,而结构体则可以看作默认public,类又可以设置成员变量访问控制权限为public,private,protected 但是所有访问控制的检查都是在编译期进行的,也...