l0tus's blog

若到江南赶上春,千万和春住

JS的一些特性:原型链,作用域,闭包

(转自@gtg)

前言 这篇文章是@gtg师傅写的,征得同意分享给了我们。(l0你在装什么你根本看不懂啊喂(#`O′)!) 是好东西,我一个二进制菜狗虽然看不明白但是想在博客挂一份,或许以后会有学 这篇文章所有权以及一切解释归@gtg所有,如需转载请联系@gtg。 原型链prototype chain 没有类的实例对象 Javascript继承机制的设计思想): Brendan Eich设计 Javasc......

2022年终总结

朱颜长似、头上花枝,岁岁年年

始 时间是不会倒退的。在不断前进的岁月里,迎接了无数相遇与别离。对新朋谈旧事何尝不是一种乐趣。 离别 2022最大的别离与遗憾莫过于没能亲自到机场送别泽楠。毕业是一群人的离开,也是我和一群人关系的终点。硬要讲毕业的不舍的话,只有告别亲爱的英语老师吧。还有乌鸡哥。 年初的时候做了件比较愚蠢的事,但无论如何也算是一种探险吧,或者说是某种渡劫(? 遇见 最值得纪念的遇见就是结识协会了,就是有这么一......

迟到三个月的省赛wp

babyheap 三个月前,9月17号参加了省赛,菜的和狗一样玩了一下午吃豆人。三个月后初学了堆,还是菜的和狗一样,不过大抵是会做这第一道了。 首先题目是一道规规矩矩的堆体模板。add函数限制了次数为7次,大小限制为0x7f及以内 根据各个函数的实现,先在脚本里写好对应的函数: 1234567891011121314151617def add(size): p.sendlineaf......

Stackmove

开篇碎碎念 近期的进度应该已经进入堆题的学习阶段了,但是我还没有完整做过一道栈迁移的题。倍感惭愧,正好前几天赛博的比赛nameless✌出了一道栈迁移,可惜当时时间很紧。我的想法是现学堆题的知识,然后把ez_heap整出来,但是我太菜了就把大把的时间花费在了理解堆管理器上,到结束也没做出来。也就没心思看这道栈迁移了,不过回头看来,这道题应该是当时可以拿下的。 题目 题目给了execve的地......

tcache_poisoning

一种简单的堆利用方式

泄露libc 首先申请index为0-7,size为0x100x的八个chunk,第7-1号chunk在逆序free后进入tcache,第0号进入unsorted bin. free完成后可以查看bin的情况,可以看到unsorted bin中的最后一位(这里只有一位),也就是第一个被free进入unsorted bin当中的chunk会指回libc中main_arena的某处地址,同时d......

PoC double_free

Source code 1234567891011121314151617181920212223242526272829303132333435#include<stdio.h>#include<stdlib.h>int main(){ size_t * ptr[12]; for(int i=0;i<12;i++) ......

HEAP

堆相关知识

malloc & free 1234567891011121314151617181920212223242526/* malloc(size_t n) Returns a pointer to a newly allocated chunk of at least n bytes, or null if no space is available. Additionally,......

XCTF-stack2-WP

初遇canary

下载附件拖进ida之后观察main函数: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475int __cdecl main(int argc, const c......

ret2syscall

先把白夜学长这篇文章放这,关于ret2syscall的深入浅出,一看就能学会! 下载题目附件后拖入ida,看到vuln函数如下: 思路: 这次不用libc而是使用系统调用(syscall),那么我们就要自己构造系统调用链 其原理就是在Linux的glibc中,大部分系统调用已经被封装成普通的函数,如 read , write , open , execve等,同时也将 syscall 指令......

XCTF-实时数据检测-WP

比较经典的一道格式化字符串漏洞的题目,难度不大,l0tus在这里提供两种做法

经典做法 下载附件拖进ida之后看到明显的逻辑,不过这题是32位的 1234567891011int locker(){ char s[520]; // [esp+0h] [ebp-208h] BYREF fgets(s, 512, stdin); imagemagic(s); if ( key == 35795746 ) return system("/b......