内核环境搭建: 这里建议用qemu+gdb环境来调试,并且建议使用Ubuntu14.04,所需要的东西有: qemu busybox 其中busybox的作用是构建一个简单的文件系统和命令,以此配合内核的启动。 编译内核: 1.安装依赖: sudo apt-get update sudo apt-get install git fakeroot build-essential ncurses
前言: prompt(1)to win是一个比较经典的xss训练平台,主要的目的是绕过代码的约束条件然后执行prompt(1)便成功过关,不涉及xss之后的一些利用。本人做了一轮下来,学习到许多js的特性和语法特点,收获还是很多的。有些题目比较简单,就没有说的太多,个人认为比较有意思的题目会比较详细的说明。 练习平台:http://prompt.ml 第0关 function escape(i
参加了p4Team举办的Teaser CONFidence CTF,其中有一道很有意思的题,预期解法是svg xss,非预期解法是前段时间刚学的缓存投毒。 题目 地址:http://web50.zajebistyc.tf/ (环境还没关)题目主页给了一个登陆注册的页面,可以注册任意用户名的账号登陆成功后有两个功能第一个功能可以修改自己的个人信息以及上传头像第二个功能是给了一个表单,提交后台admi
之前简单学了一波ret2dl_runtime_resolve的操作,但是没有认真记下笔记,只懂了大概的原理流程,到现在要回忆起具体的细节又想不起来orz,果然以我这老人家的记性不通过码字是记不牢的,因此这里再认真深入复现一次原理 原理 拿一个自己写的c来测试一波: #include <stdio.h> void say() { char buf[20]; puts("i
CTFtime平台上发现的一场比赛,记录一下其中的2道逆向题 Feed_me 题目打开,发现一个scanf("%s",s),明显有栈溢出倾向,而IDA将变量识别如下 注意后面的三个atoi,后两个的参数比较迷,相对s的偏移分别为10和20,这里我把s的类型重新定义为char s[30] 因为这题保护全开,不是考察pwn,应该是考察栈上变量偏移的识别 那么我们输入的字符串每10个字符被解析成3个i
UTCTF2019 pwn Baby Pwn nc stack.overflow.fail 9000 检查保护情况 [*] '/home/kira/pwn/utctf/babypwn' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX
UTCTF是上周末国外的一个CTF比赛,逆向题中有几道质量还不错,简单整理了一下供大家参考。 Super Sucure Authentication 这是一道Java逆向题。Java逆向题在CTF里比较少见,主要是因为Java反编译太容易,没有太多trick。 其中考察比较多的有反射和动态加载类等,这道题就是使用动态加载类对代码进行了保护。 首先使用Jd-gui反编译Authenticator类,
这周打了打AeroCTF,把pwn ak了。以下是Writeup Warm up 这题很简单,考的是stack overflow, 题目分析 先看main函数 int __cdecl main(int argc, const char **argv, const char **envp) { char buf[32]; // [esp+1h] [ebp-29h] char v5; // [esp+
TAMUctf2019-pwn-writeup pwn1-5的题目不难,之前已经有师傅发过writeup了,现在我把剩余两题pwn的writeup补充一下。 VeggieTales 题目描述: It's my favorite show to watch while practicing my python skills! I've seen episode 5 at least 13 time
TAMUCTF-部分web解析 这次的这个比赛难度还是有些梯度的,有些知识点想到了,就能出来了,后面两道web题没有想到考的什么就没有做出来。 Not Another SQLi Challenge (http://web1.tamuctf.com)[http://web1.tamuctf.com] 标题写着sqli chanllenge,很明显就是sql注入了,直接上payload usern
STEM CTF Cyber Challenge 2019的一道400分的逆向题,做题过程中学到了很多以前忽略的小知识点,以下是详细复现记录 REbase-fix 简单交互 先file一下,发现是x86-64的elf ➜ Desktop file REbase-fix REbase-fix: ELF 64-bit LSB executable, x86-64, version 1 (GNU/L
0x01:confused_flxg 这是Hackergame 2018的一道题目 拿到题目,是一个压缩包,进行解压后发现是一个.exe可执行程序,双击可以正常运行 随意输入,总是会出来一个倒序的base64编码后的字符串 我们用python进行解码 得到一个假的flag 不用管他 Exeinfo PE载入可以发现是VC++写的64位程序,并且没有加壳 我们直接使用IDA x64载入 s
萌新入坑pwn,一直在做栈溢出的题目,这题集合了__libc_csu_init,覆写got表,mmap和mprotect的运用,知识点丰富,在此做个总结,和学pwn的同学一起进步,大佬也请过过目,指正下不足之处,向大佬们看齐,题目,libc版本和exp都放在附件中,请自取。 下面进入正题,这里假设system和execve被禁用,实际上这种情况很常见,利用mprotect和mmap来解决,简单来说
前言: 花时间学习了一下tcache的一些东西,现在来写一写关于这个机制的两道解题过程。 正文: 2018 LCTF easy_heap: 一道关于tcache的利用题,也是之前打LCTF的第一题,现在来看一看。 试试程序发现是常规的堆题。 来看看伪代码: 漏洞主要就出在创建堆函数中,存在一个null-byte-one漏洞: unsigned __int64 __fastcall sub_BEC
TAMUCTF-部分pwn解析 和队里师傅做了这个比赛的题目难度有些梯度,但是后面两个题难度实在大了,水平太低不会了,前面的题还是比较简单有一定的借鉴意义,记录一下大佬勿喷。 pwn1 第一题比较简单大概看一下。 main 从栈分布和main函数来看就是一个栈溢出加上覆盖指针然后成功运行print_flag函数就可以拿到flag了。 exp p = remote("nc pwn.tamuctf