- 博客(30)
- 收藏
- 关注
转载 红帽杯线下pwn1
转载于我的新博客:http://dayjun.top/概览最开始它获取了flag文件的文件描述符,并把它用dup2映射到0x233,这样我们就知道0x233是flag的文件描述符然后定义了沙盒规则,不允许execve和write,且虚拟机本身只能输入0x40道指令漏洞点它在处理指令的时候,有使用寄存器中的值作为index来存取它定的内存区的数据的操作,但是它却没有对寄存器进行检查如果寄...
2020-01-25 16:16:42
319
翻译 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
1066
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
1568
原创 新姿势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
1132
1
原创 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
824
原创 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
661
原创 记一次非常巧妙的思路 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
335
原创 新姿势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
2015
2
原创 两种 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
621
转载 死活不懂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
340
原创 没有对方libc文件,如何getshell?xdctf12 pwn200 与 welpwn 的 writeup
DynELF文档:https://pwntools.readthedocs.io/en/stable/dynelf.html简单来说,DynELF可以泄漏对方的libc信息关于DynELF的原理,这个博客讲的很详细
2019-07-26 18:29:31
420
原创 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
318
3
原创 2014 HITCON stkof 的 exp
思路借鉴于ctf-wiki,但ctf-wiki之中的思路较简略,且exp有一点疏忽的地方,故在此记录
2019-07-23 18:40:34
506
原创 静态修改PE输入表
通常情况下,程序加载DLL的时机主要有以下三个:在进程创建阶段加载输入表中的DLL,即俗称的静态输入通过调用`LoadLibrary (Ex) 主动加载,称为动态加载由于系统机制的要求,必须加载系统预设的一些基础服务模块此文仅记录修改静态输入表注入找到输入表https://blog.csdn.net/billvsme/article/details/39735823输入表结构...
2019-07-21 18:53:34
764
原创 记一下 hack.lu 2015 bookstore 的思路,怕忘
网络上两篇非常优秀的大佬的详细过程https://blog.csdn.net/qq_43449190/article/details/89077783https://bbs.pediy.com/thread-246783.htm
2019-07-21 11:44:15
565
原创 学习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
611
原创 攻防世界 - pwn100 - WriteUp
pwn100文件链接 -> Githubchecksec寻找漏洞sub_40063D 函数中获取输入存放到 v1 ,存在栈溢出漏洞攻击思路该程序中没用system函数,也没有binsh字符串,而且参数是经过寄存器传递的,所以要通过ROP来达成泄露 libc ,写入 /bin/sh 的操作寄存器 rdi 中存放的是写入的地址,rsi 是写入的字节数,所以可以通过po...
2019-06-11 22:11:21
4141
18
原创 攻防世界 - 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
13658
原创 python调用C的函数
python如何调用C的函数需要用到ctypes这个库官方文档ctypes是python的一个外部函数库,它提供兼容C的数据类型,允许调用DLL或共享库中的函数。它可以用纯python来封装这些库目前在pwn中使用过这个库在 guess_num 这一题中,需要用栈溢出漏洞将 srand 的参数修改为自己的 参数,然后调用 rand 函数进行十次的伪随机数生成这就需要用到 C 里面的...
2019-06-05 17:49:55
6439
3
原创 参加国赛线下赛有感
首先是自己太菜了其次是国赛的题目似乎没有逆向工程要改变一下方向,不能只看逆向了,其他的也要学习下次参赛的时候一定不错那个最无所事事的人,要带领全场夺取高分每天记录总结的这个习惯要养成,尽管今天没啥总结的,还拿了个mobile的题以为是逆向一时冲动,索性没有坏结果……...
2019-06-01 19:32:16
226
4
原创 攻防世界 - The_Maya_Society - writeup
The_Maya_Society文件链接 -> Github初步分析压缩包解压以后,有这些文件打开 html 文件,浏览器中显示如下点击download按钮,下载launcher文件。由于网站原因,这里download是进不去的,所以直接打开本地的launcher文件程序执行过程程序调用了time函数获取当前时间,并把它格式化后,使用 sub_B5A 函数对它进行md...
2019-05-30 21:12:26
1724
2
原创 攻防世界 - re-for-50-plz-50 - writeup
re-for-50-plz-50文件链接 -> Github初步分析ELF for MIPS,第一次见,特此记录一下知识梳理关于Mips指令,参见 这篇博客算法分析主要代码段如下:loc_4013C8:lui $v0, 0x4A # 加载0x4A到$v0寄存器的高16位addiu $v1, $v0, (meow - 0x4A0000) # "cbtc...
2019-05-29 21:52:58
1327
原创 强网杯 - JustRe - writeup
JustRe文件链接 -> Github初步分析使用32位的IDA打开文件按 shift+F12 搜索字符串,找到了带有 flag{%.26s} 字样的字符串。根据交叉引用找到该字符串被引用的代码段发现 test eax,eax 这句代码上方的代码IDA识别不出来。按下 [space] ,查看上方的代码是什么样的我们发现它调用了这个函数,跟进去看一下发现端倪了,这里使...
2019-05-29 15:28:34
1322
原创 矿大CTF —— linux
题目下载下来后,是一个linux可执行文件,但是放到ida里面却编译不出什么有用的信息。然后放到linux中运行,发现它还需要libpython2.7.so.1.0文件,于是推测这是一个python写的文件转换成了exe可执行文件。于是可以用pyinstxtractor.py将其还原为py文件。还原后,生成如下文件夹:将re04后缀名改为py,打开即可得...
2019-03-14 21:43:07
679
3
原创 井字棋判断输赢功能实现
这是原问题:You will be given the sequence of moves (supposing the first move is always done by X) - by the numbers of cells where marks are placed - and your task is to determine, at which step the firs...
2018-08-26 00:15:18
3635
原创 多线程:实现数字与字母交替输出
写两个线程,其中一个线程打印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
2518
原创 多线程:实现多线程停车模拟
假设车库有三个车位可以停车,使用 boolean[] 数组来表示车库,写一个程序模拟多个用户开车离开、停车入库的效果。注意:车位有车的时候不能停车。 首先,分析这是个多线程的问题,多线程的对象是停车与开车。 其次,有没有涉及到共享的数据。有,boolean[] 数组表示的车位。 最后,有没有涉及到线程的通信问题。有,当车满了的时...
2018-08-24 21:07:22
2384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人