
学习日记
哒君
dayjun.top
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红帽杯线下pwn1
转载于我的新博客:http://dayjun.top/概览最开始它获取了flag文件的文件描述符,并把它用dup2映射到0x233,这样我们就知道0x233是flag的文件描述符然后定义了沙盒规则,不允许execve和write,且虚拟机本身只能输入0x40道指令漏洞点它在处理指令的时候,有使用寄存器中的值作为index来存取它定的内存区的数据的操作,但是它却没有对寄存器进行检查如果寄...转载 2020-01-25 16:16:42 · 352 阅读 · 0 评论 -
静态修改PE输入表
通常情况下,程序加载DLL的时机主要有以下三个:在进程创建阶段加载输入表中的DLL,即俗称的静态输入通过调用`LoadLibrary (Ex) 主动加载,称为动态加载由于系统机制的要求,必须加载系统预设的一些基础服务模块此文仅记录修改静态输入表注入找到输入表https://blog.youkuaiyun.com/billvsme/article/details/39735823输入表结构...原创 2019-07-21 18:53:34 · 867 阅读 · 0 评论 -
两种 fastbin attack 方法做 2014 hack.lu oreo
终于第一次自己独立做出一道完整的堆题方法一:ctf-wiki很详细,不多赘述方法二:与 ctf-wiki 的思路类似,最终也是控制message的指针来达到任意地址写的目的但是此处用的是 Arbitrary Alloc ,即控制fastbin块的fd指针来达成目的具体请看exp的注释exp:from pwn import *from LibcSearcher import ...原创 2019-07-31 10:29:00 · 709 阅读 · 0 评论 -
没有对方libc文件,如何getshell?xdctf12 pwn200 与 welpwn 的 writeup
DynELF文档:https://pwntools.readthedocs.io/en/stable/dynelf.html简单来说,DynELF可以泄漏对方的libc信息关于DynELF的原理,这个博客讲的很详细原创 2019-07-26 18:29:31 · 469 阅读 · 0 评论 -
恶意代码分析 关于第三章 Lab03-1
恶意代码分析第三章的实验非常有用开启了新世界的大门原创 2019-07-23 00:48:51 · 846 阅读 · 0 评论 -
死活不懂ret2_dl_runtime_resolve,留着以后学
https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/advanced-rop-zh/#ret2_dl_runtime_resolvehttps://bbs.pediy.com/thread-227034.htmhttps://xz.aliyun.com/t/5122#toc-10https://www.freebuf.co...转载 2019-07-27 22:43:03 · 402 阅读 · 0 评论 -
新姿势GET 通过unsorted bin泄露libc地址 与 fastbin double free
源文件GitHubchecksec初步分析利用方法用sentence函数分配small bin大小的bin,将其free以后,会归入unsorted bin,而如果只有一个bin的话,其fd与bk都是main_arena + offset,尽管free以后内容会清0,但是search函数中的memcmp却可以通过使v1为\x00来绕过,这样的话就会打印出bin的fb字...原创 2019-08-01 20:25:24 · 2278 阅读 · 2 评论 -
记一次非常巧妙的思路 2017 0ctf babyheap 的exp
收获malloc的时候,根据堆分配器规则,它会依次处理 unsorted bin 中的 chunk,将其放入到对应的 bin 中,之后会再次尝试分配 chunk若之前释放的 chunk 比当前申请的 chunk 大,可以从其前面分割出来一块malloc_hook附近的fake chunk 的size为0x7f堆的始终是 4KB 对齐的 (?_ ?)exp:因为保护全开,则简单的A...原创 2019-08-01 23:37:24 · 381 阅读 · 0 评论 -
LCTF2018 PWN easy_heap 远程环境搭建
一直很头疼环境的问题,需要目标环境的glibc版本是2.27,而我的是2.23如果开启第二个虚拟机占用内存太大,所以我选择用docker于是终于找到了能在libc2.27下工作的gdb插件pwngdb(注意不是那个pwndbg)所以这个镜像可以作为Tcache机制题目的本地测试容器GitHubdocker镜像:链接:https://pan.baidu.com/s/1eCIbJl3Ig9...原创 2019-08-08 22:08:38 · 928 阅读 · 0 评论 -
开启PIE的程序如何用gdb高效下断点?
需要使用pwndbgb *$rebase(偏移)原创 2019-08-09 22:53:08 · 3657 阅读 · 1 评论 -
新姿势Get:覆写_IO_list_all 来getshell ,0CTF2016 zerostorage 的exp以及心得体会
先看大佬的总结 -> https://www.jianshu.com/p/a6354fa4dbdf关于FSOP的要点就是:FSOP选择的触发方法是调用_IO_flush_all_lockpIO_flush_all_lockp函数触发条件:当libc执行abort流程时 abort可以通过触发malloc_printerr来触发当执行exit函数时当执行流从main函数返...原创 2019-08-11 10:27:24 · 1235 阅读 · 1 评论 -
De1ctf收获:用_IO_2_1_stdout_泄露libc地址 weapon的writeup
GitHub例行公事可以看出保护全开进行分析可以发现程序功能很简单createdeleterenamecreate限定大小最大只能是0x60index只能是0-9但是是自个输入的存在一个结构,struct[0] = size,struct[1] = ptrreadn函数没有用\x00截断delete中间index的判断有问题,且存在uafren...原创 2019-08-11 21:13:47 · 1654 阅读 · 0 评论 -
Miasm初探(1)
从Github的第一个例子说起Assembling / DisassemblingImport Miasm x86 architecture: >>> from miasm.arch.x86.arch import mn_x86 >>> from miasm.core.locationdb import LocationDBmn_x86是一个代表x8...翻译 2019-09-10 16:27:28 · 1193 阅读 · 1 评论 -
2017 insomni'hack wheelofrobots 的 exp
加深记忆与理解ctf-wiki#coding:utf-8from pwn import *context(arch='amd64',os='linux')context.log_level = 'debug'io = process('./wheelofrobots')elf = ELF('./wheelofrobots')libc = ELF('/lib/x86_64-lin...原创 2019-07-25 15:27:19 · 356 阅读 · 3 评论 -
L-CTF2016 PWN200 writeup
本以为已经可以做出题来了。。。没想到连利用点在哪都没看见例行公事居然什么保护都没开,有趣利用点分析v2位于rbp-0x30的位置,而name会读入0x30个字符,且如果读入0x30个字符的话末尾不会有\x00,这样在printf的时候就会顺带leak出rbp的值id保存在rbp-0x38的位置*buf在栈上的位置是rbp-0x40,dest在栈上的位置是rbp-0x8,但是b...原创 2019-08-02 18:37:14 · 724 阅读 · 0 评论 -
多线程:实现多线程停车模拟
假设车库有三个车位可以停车,使用 boolean[] 数组来表示车库,写一个程序模拟多个用户开车离开、停车入库的效果。注意:车位有车的时候不能停车。 首先,分析这是个多线程的问题,多线程的对象是停车与开车。 其次,有没有涉及到共享的数据。有,boolean[] 数组表示的车位。 最后,有没有涉及到线程的通信问题。有,当车满了的时...原创 2018-08-24 21:07:22 · 2487 阅读 · 0 评论 -
多线程:实现数字与字母交替输出
写两个线程,其中一个线程打印1~52,另一个线程打印A~Z,打印顺序应该是12A34B56C…5152Z。首先,需要两个线程。其次,涉及线程通信。最后,没有共享数据。以下是我实现的代码:class printStuff{//打印数据的类 public int num = 1; public char cha='A'; public boolean fl...原创 2018-08-24 21:48:06 · 2567 阅读 · 0 评论 -
python调用C的函数
python如何调用C的函数需要用到ctypes这个库官方文档ctypes是python的一个外部函数库,它提供兼容C的数据类型,允许调用DLL或共享库中的函数。它可以用纯python来封装这些库目前在pwn中使用过这个库在 guess_num 这一题中,需要用栈溢出漏洞将 srand 的参数修改为自己的 参数,然后调用 rand 函数进行十次的伪随机数生成这就需要用到 C 里面的...原创 2019-06-05 17:49:55 · 6525 阅读 · 3 评论 -
初级格式化字符串漏洞
%c:输出字符,配上%n可用于向指定地址写数据。%d:输出十进制整数,配上%n可用于向指定地址写数据。转载 2019-06-05 17:08:58 · 244 阅读 · 0 评论 -
参加国赛线下赛有感
首先是自己太菜了其次是国赛的题目似乎没有逆向工程要改变一下方向,不能只看逆向了,其他的也要学习下次参赛的时候一定不错那个最无所事事的人,要带领全场夺取高分每天记录总结的这个习惯要养成,尽管今天没啥总结的,还拿了个mobile的题以为是逆向一时冲动,索性没有坏结果……...原创 2019-06-01 19:32:16 · 266 阅读 · 4 评论 -
攻防世界 - NewsCenter - WriteUp
NewsCenter这一题考察的是 SQL 注入首先用 ' and 0 union select 1,2,3 # 来初步判断该sql查询返回三列数据然后用 ' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS # 得到表名,很明显我们需要得到 secret_table 表中的内容再用 ...原创 2019-06-08 20:08:58 · 13812 阅读 · 0 评论 -
攻防世界 - pwn100 - WriteUp
pwn100文件链接 -> Githubchecksec寻找漏洞sub_40063D 函数中获取输入存放到 v1 ,存在栈溢出漏洞攻击思路该程序中没用system函数,也没有binsh字符串,而且参数是经过寄存器传递的,所以要通过ROP来达成泄露 libc ,写入 /bin/sh 的操作寄存器 rdi 中存放的是写入的地址,rsi 是写入的字节数,所以可以通过po...原创 2019-06-11 22:11:21 · 4275 阅读 · 18 评论 -
2014 HITCON stkof 的 exp
思路借鉴于ctf-wiki,但ctf-wiki之中的思路较简略,且exp有一点疏忽的地方,故在此记录原创 2019-07-23 18:40:34 · 611 阅读 · 0 评论 -
学习C++在Windows下的Socket编程
此处引用他人博客原话在server端的流程一般如下:1、初始化winsocket2、建立socket3、与本机进行邦定(bind)4、开始监听(listen)5、然后与客户端建立连接(accept)6、然后与客户端进行通信(send, recv)7、当通信完成以后,关闭连接8、释放winsocket的有关资源在Client端的流程一般如下:1、初始化winsocket2、...原创 2019-07-17 21:39:23 · 689 阅读 · 0 评论 -
记一下 hack.lu 2015 bookstore 的思路,怕忘
网络上两篇非常优秀的大佬的详细过程https://blog.youkuaiyun.com/qq_43449190/article/details/89077783https://bbs.pediy.com/thread-246783.htm原创 2019-07-21 11:44:15 · 622 阅读 · 0 评论