Carter'Blog

愛生活 愛安全

peach框架源码调试

多读框架,站在巨人肩膀上思考

peach源码阅读 前言 接触peach这个框架也有一年多时间了,平时只是停留在使用层面,最近有一个论文思路需要在peach的源码上进行修改来验证,借此机会好好的看了两天peach源码。 网上关于peach源码介绍的资料基本没有,现做一个记录,权当抛砖引玉,希望能多多交流。 PS:此次peach源码版本为3.1.124 一. vs2010调试环境搭建 peach官方提供了源码编译方法...

格式化字符串漏洞利用总结

多实践,勤总结

写在前面 漏洞原理 格式化字符串是一种很常见的漏洞,其产生根源是printf函数设计的缺陷,即printf()函数并不能确定数据参数arg1,arg2…究竟在什么地方结束,也就是说,它不知道参数的个数。它只会根据format中的打印格式的数目依次打印堆栈中参数format后面地址的内容 在实际程序中,没有安全常识的程序员通常没有对用户输入进行有效地过滤,这些输入数据都作为数据传...

0ctf-easiestPrintf

fsb漏洞利用新思路

写在前面 刚刚参加完0ctf,这道题费了我很多时间思考,最终还是没有getshell(愁苦脸)。赛后看了大佬的wp,其利用思路是我第一次见,在本文将进行阐述和记录。 一. 漏洞分析 内存泄露 在此可以通过printf函数输出一个内存地址内容,进而泄露libc 格式化字符串 很明显的一个printf格式化字符串漏洞 分析 按照常规思路,覆盖exit_g...

pwnable.tw--house of sprit

堆攻击方法之House of sprit

写在前面 最近项目不太紧,自己也有时间研究点感兴趣的东西。拜读了华庭大佬写的《glibc内存管理ptmalloc源代码分析》一书,想通过此书系统的学习一下linux下ptmalloc对堆管理机制。看完一大堆文字性的理论,总觉得啥也没有学会,于是决定通过调试具体的堆漏洞来加深对理论的理解。毕竟在利用某项机制漏洞的过程中,肯定包含了该机制的方方面面的知识! 本篇文章将通过pwnable.tw...

pwn--数组越界读写

通过题目,实战理解数组越界读写漏洞

写在前面 数组越界读写是一种很常见的漏洞,其成因是因为对数组下标值检验不严格。在实际的漏洞利用过程中,既可以任意内存读,泄露关键地址,突破aslr、pie等令人头疼的保护机制;同时也可以任意地址写,劫持控制流。可以说是“居家旅行必备的攻击武器”。下面就通过两个例子来实际感受一下它的魅力。 TUCTF guestbook 1. 题目描述 题目功能很简单,首先默认分配四块堆,存储四个gue...

IDA-python学习小结

从实际出发,感受IDA-python的魅力

写在前面 一直听说IDA python很强大,这段时间花了些时间做了些研究,并且根据在CTF中pwn题的实际需要,开发了两个小小功能的脚本来练练手,算是基本入了门。下面来做一个小小的总结 一. 基本介绍 IDA python在2004年被开发出来,其目的是为了将python语言的简洁强大和IDA支持的IDC语言结合起来。 IDA python有三个独立的模块组成: 1. idc...

2017XCTF决赛题 -- b64d

从一道看似普通的栈溢出开始的探索

写在前面 前段时间有幸代表战队参加了2017年XCTF总决赛,和国内国外的大佬们有了现场过招的机会。该次决赛赛制也很有意思,不再采用两天都是攻防赛的形式,我是引入了目前IT圈内的大明星 – 人工智能。总决赛总共两天,第一天是各个战队使用自己开发的AI工具,对主办方放出的题目进行自动化的fuzz,只有当fuzz出该题目的崩溃后,人类选手才能得到该题的二进制程序文件,进行分析和利用的开发;第二...

协议Fuzz:从Pit开发到弹计算器

针对Http协议从fuzz、漏洞分析到利用全过程

事情的起因是在github上闲逛,看到了一篇老外写的讨论协议fuzz的文章(https://blog.techorganic.com/2014/05/14/from-fuzzing-to-0-day/),虽然全是英文,但也浅显易懂,所以想着按照他提供的思路和流程,仔细走一遍 一. 工具: Peach 3.1 Immunity Debugger (需要安...

2016Hctf-setter is missing

一道没有给二进制文件的pwn题......

一. 题目描述: 题目只给了一个IP地址和端口,并没有给二进制程序,第一次遇到这类型的题目,感觉很有挑战性 题目提示输入password,输入后会显示’No password,no game’字段,然后循环不断地让你输入 另外主办方提示: 1. 这道题没有必要爆破密码 2. 发送的数据量不要超过0x100个 二. 思路探究: 既然是Blind-fuzz,感觉题目本身不...

2016Hctf-Just do it

fast-bin内存机制的探究与利用

一. 知识点: 1. 代码段开了随机化怎么调试: 需要两个文件,其一是debug,通过peda获取每次程序加载代码段基址,内容如下: python code_addr = peda.get_vmmap('binary')[0][0] peda.execute('set $code='+hex(code_addr)) end source aa 另一个是断点文件aa,通过source指...