
ctf
文章平均质量分 95
leehaming
不断总结不断进步
展开
-
第一次不完整的ctf出题记录
第一次不完整的ctf出题记录之前都是做题,至此有个机会打算挑战一下自己,出一道题目,了解一下出题的思路和过程。于是有了一个不完整的出题经历。我个人理解的出题思路应该是:写出含有可以用漏洞的源代码以合适的方式进行编译自己编写漏洞利用的思路和代码,拿到Flag出题结束但是,,,,太菜了,目前只做了前两步,现在想想好像没有什么工作量啊…但还是简单的总结一下吧。本次总结主...原创 2018-10-12 10:57:37 · 3783 阅读 · 0 评论 -
shellcode-Pilot
shellcode-Pilot题目描述CSAW 2017 Quals - ‘pilot’writeup本人做的是实验吧上边的pilot;和CSAW上边的pilot完全一样。首先下载文件file pilot #看到是64bit-elf;一会使用ida64打开checksec #发现没有开启任何保护;使用IDA-pro打开后F5热键查看源码,可以看到程序运行流程。...原创 2018-08-27 15:53:07 · 473 阅读 · 0 评论 -
pwn-内存泄漏one_gadget
pwn-内存泄漏/one_gadget题目描述题目可以下载到本地https://github.com/LeeHaming/CTF-learn/blob/master/Caniso/Casino解题思路1.IDA分析函数逻辑 F5;热键F5可以看到反汇编之后的程序逻辑;结合函数实际运行情况,可以得到这样的函数流程图: 此外我们可以找到修改mone...原创 2018-08-22 11:26:21 · 5902 阅读 · 0 评论 -
pwnable.kr第二遍---coin1
>>>>>coin1pwnable服务器端有pwn因此可以调用remote工具可以使用recvline等内容remote()ssh.connect_remote()socket.connect1.remote("HOST",PORT)可以直接连接Host,此时如果需要连接pwnable.kr//remote(host, port, timeout=pwnlib.tim...原创 2018-03-16 20:15:52 · 501 阅读 · 0 评论 -
pwnable.kr第二遍---lotto blackjack
>>>>>lotto尽管没有退出程序,用户可以一直玩下去但是每次要重新打开/dev/random取随机数这里的随机数是每次更新的所以......1.每次的/dev/urandom的数字是变化的根据linux下的系统熵产生的随机数2.第二次做,显然不如第一次那样有对题目的敬畏之心,没能好好看代码>首先从main函数开始读,了解整个函数的逻辑以及攻击点,函数主要包括...原创 2018-03-16 20:15:09 · 402 阅读 · 0 评论 -
pwnable.kr第二遍---uaf cmd1 cmd2
>>>>uafC++程序逆向gdb-peda看对方服务器上虚表的地址x/3gx 0x11caca0???通过虚表的index来完成函数调用是非常有可能?还是一定会???找到虚函数表??地址的格式\xuse after free:当一个内存块被释放之后再次被使用,下边这些情况:1.内存被释放后,其对应的指针被设置为NULL,然后再次使用,程序会崩溃2.内存块被释放后,其对应的...原创 2018-03-16 20:14:30 · 460 阅读 · 0 评论 -
pwnable.kr第二遍---unlink asm memcpy
pwnable.kr需要学会的内容:>>>>>unlink如何查看堆栈的内存分布?查看源代码的汇编:gdb disassemble funcmov和lea的关系mov的第二个操作是只能是常量,不能是表达式lea ecx,eax 语法错误lea ecx,[eax] 将eax的值给ecx,[]中可以是表达式mov ecx,eax 将eax的值给ecx,第二个操作数不能使表...原创 2018-03-16 20:13:30 · 448 阅读 · 0 评论 -
pwnable.kr第二遍---mistake
>>>>>mistake解题思路:题目给出了hint,主要是优先级priority其中关键点在于两个if语句if(fd=open("/home/mistake/password",O_RDONLY,0400)<0){"error"}if(!(len=read(fd,pw_buf,PW_LEN)>0)){"error"}这里主要用到的是'='与'&原创 2018-03-16 20:12:19 · 321 阅读 · 0 评论 -
shellcode实践&理解
shellcode实践&理解【干货分享】手把手简易实现shellcode及详解C语言源码格式#include<unistd.h>#include<stdlib.h>char *buf[]={"/bin/sh",NULL};void main(){ execve("/bin/sh",buf,0); exit(0);}...原创 2018-08-27 19:34:12 · 408 阅读 · 0 评论 -
pwn-栈迁移-ROP
# 栈迁移-ROP题目描述这里给出题目链接https://github.com/LeeHaming/CTF-learn/blob/master/easyR0p/easyR0p程序的结构很简单,main()函数中有一个while(1)的循环,循环中rop()函数执行。rop()中有明显的栈溢出,最开始给s申请的内存空间为:0x40;然而read()可以读入0x50字节。于是就...原创 2018-08-23 19:55:05 · 4267 阅读 · 1 评论 -
CCTF-pwn3-printf
CCTF-pwn3-printf开始做“实验吧”里边的溢出题目:printf文件解压缩之后发现里边的压缩包名为cctf-2016-pwn,于是之后就一直看cctf-2016-pwn这题的思路。当前的结果是:可以通过题目压缩包中的pwn-ELF文件拿到本地Shell,但是连接到服务器上就不行了……目前仍在解决当中;而且复制粘贴已有的expoit只能获取到服务器上的shell,无法获取...原创 2018-09-08 21:28:54 · 2363 阅读 · 1 评论 -
ichunqiu-try to pwn-II.md
FSP-stack pivot-ROP-try to pwn-II本文参考的writeup原文上次(这里放上次的文章链接)由于时间原因,比较仓促、敷衍的完成了一篇大致的writeup但是其中还有很多的问题存在;这篇writeup旨在解决遇到的很多问题、疑惑;此外,还向别人请教了一些知识点,收获很大题目相关题目依然是ichunqiu中的try to pwn;也是2016百度-ctf的一道题...原创 2018-09-27 11:48:52 · 630 阅读 · 0 评论 -
ichunqiu--try to pwn.md
ichunqiu–try to pwnICQ Baidu CTF try to pwn好吧,这个题目其实还没有做到我想要的地步,我还想再深度挖掘一下,但是周末了,该写writeup了,就先把这部分总结写了,之后如果还想有其他的尝试,就继续做吧。题目又不是我自己做出来的,当时没有发现程序的溢出点,于是就到网上看了别人的Write-up。和之前的感觉一样,溢出点其实很简单,关键在于ROP的构造,...原创 2018-09-23 16:38:09 · 1016 阅读 · 1 评论 -
超级调用实现总结
超级调用实现总结这两天的目标是实现一个超级调用,其中遇到了很多问题以及还没有弄清楚的现象,这里将所有过程记录一下,试图发现背后的根本原因。实践过程环境:dom0(Ubuntu14.04) + domU(Debian)过程记录设置系统调用号(使用的是reversed for client 的39)xen/include/public/xen.h#define _...原创 2018-09-17 09:45:43 · 658 阅读 · 2 评论 -
实验吧-加减乘除
实验吧-加减乘除题目描述http://ctf5.shiyanbar.com/overflow/1/一段简单的汇编代码;实现的功能是:删除当前目录下指定文件名的文件。题目的目的是将这段代码转化为hex格式,输入获取KEY,然后提交即可。.global _start_start: jmp test1test2: pop %eb...原创 2018-09-16 14:12:06 · 858 阅读 · 0 评论 -
解决pwntools安装找不到ENUM_P_TYPE
解决pwntools安装找不到ENUM_P_TYPE网上有很多教程安装pwntools,经过多次尝试基本就是两种,一个是官网上的教程另一个就是通过capstone进行安装但是前两天多次尝试这两种办法都出现了同样的问题,如下图:安装过程没有问题,但是python下面import的时候出错了。排除了vmware的问题、ubuntu安装的问题、安装姿势的问题……最后也没有...原创 2018-09-06 10:44:54 · 590 阅读 · 0 评论 -
CTF-pwn环境配置
CTF-pwn环境配置换了一个环境,要在新电脑上配置pwn环境做题;但是无奈配置环境用了很久,为了以后不再在这上边浪费太多时间,记录一下必备的环境以及安装过程。顺便附过程中遇到的问题和理解。环境配置本机环境:windowss10+vmware+ubuntu16.04ubuntu安装这里主要是两种不同的ubuntu安装方式: 1.直接引导安装程序光盘映像文件这里...原创 2018-09-06 10:19:54 · 8601 阅读 · 2 评论 -
实验吧-溢出-printf
实验吧-溢出-printfprintf题目与CCTF-2016-pwn3几乎一样,不同的是,使用的libc和用户的username不同,其他的原理基本都相同。在解出这道题目之前,首先先了解了CCTF-pwn3-2016这道题目的解题思路并且自己达到了拿到本地shell的目的。关于原题的write-up可参考:CCTF pwn3格式化字符串漏洞详细writeup关于本题中拿到本地...原创 2018-09-09 11:01:58 · 2455 阅读 · 10 评论 -
pwnable.kr第二遍---leg
>>>>>leg1.一行权限的意思一共有7列第一列是权限,十个字符:1表示文件类型;2~4表示文件所有者权限;5~7表示文件所有者所属组的权限;8~10表示其他用户权限;常见的权限为wrx(读写执行);常见的文件类型有d-(目录/普通文件)第二列是文件的硬链接个数2.batch file:批处理批处理文件是无格式的文本文件,包含一条或多条命令。文件扩展名为.bat或....原创 2018-03-16 20:11:15 · 316 阅读 · 0 评论 -
pwnable.kr第二遍---input
>>>input1.命令whoami---input2groups---input2ls -l:发现其他用户对input2可执行文件没有执行权限;只对文件owner和input2组用户有该权限;然后发现input2用户也位于input2-group中2.字符与数字之间的转换各进制之间的转换chr ord bin oct int hex字符和ascii:chr ord转成十进制:i...原创 2018-03-16 20:09:58 · 599 阅读 · 0 评论 -
pwnable.kr---lotto
pwnable.kr—lotto解题思路万万没想到这个题目的解题思路竟然是这样的!这个思路真的与我擦肩而过!根据下边的代码逻辑漏洞原创 2017-11-08 23:00:01 · 428 阅读 · 0 评论 -
pwnable.kr---leg
pwnable.kr—leg解题思路这是一道和asm有关的题,题目提供了源代码、.asm文件、flag文件以及leg的可执行文件。虽然leg.c代码比较长,但是关键点只有四处,掌握好四处关键点,就可以迎刃而解了。原创 2017-10-30 23:06:14 · 1169 阅读 · 0 评论 -
Pwnable.kr---input
Pwnable.kr—input解题思路:题目代码很明显,要求我们一共通过五个关卡,才能执行到system()函数,cat flag;那就只能一个一个来过了,分解目标。这里使用C来编写脚本文件,调用input。原创 2017-10-29 11:46:41 · 1160 阅读 · 4 评论 -
pwnable.kr—bof
pwnable.kr—bof这是一道缓冲区溢出的题目原创 2017-08-30 17:15:59 · 641 阅读 · 2 评论 -
pwnable.kr记录
pwnable.kr记录fdcolpof原创 2017-08-25 09:27:36 · 649 阅读 · 0 评论 -
WeChall刷题(一)
2017.08.14这两天开始刷ctf的题目,首先看了i春秋上边的ctf入门视频,了解到很多刷题网站,分享如下: http://pwdme.cc/tag/idf%E5%AE%9E%E9%AA%8C%E5%AE%A4/ https://microcorruption.com/login http://smashthestack.org/ http://overthewire.org/warga原创 2017-08-14 20:35:09 · 8308 阅读 · 3 评论 -
Wechall刷题(三)Crypto - Transposition I//The Beginning//hi
Crypto - Transposition I//The Beginning//hi原创 2017-08-17 09:04:57 · 2302 阅读 · 0 评论 -
pwnable.kr---cmd1
pwnable.kr—cmd1解题思路逐步分析题目的含义:putenv("PATH=/fuckyouverymuch");这行代码相当于重写了PATH这个环境变量if(filter(argv[1])) return 0;这行对输入argv[1]继续宁过滤处理,如果返回值为真,则return 0.这里我们需要返回值为false。原创 2017-11-08 23:00:20 · 771 阅读 · 0 评论 -
pwnable.kr---cmd2
pwnable.kr—cmd2解题思路同cmd1的writeup一样,一步一步解析问题:delete_env();此行清除了所有的环境变量;因此想在执行cmd2之前设置环境变量并利用变量绕过filter,那么这一步就是一个阻碍。另外要注意的是,extern char ** environ中environ是一个系统已经定义的变量,在此声明后即可使用,它的作用是指向环境变量。if(filter(argv原创 2017-11-08 23:00:36 · 497 阅读 · 0 评论 -
pwnable.kr---blackjack
pwnable.kr—blackjack解题思路万万没想到这个题突破点在这里,我本想不看别人的writeup 独立做出这个题目的,但还是败给了自己,加油!原创 2017-11-04 20:41:30 · 702 阅读 · 0 评论 -
pwnable.kr第二遍---random
>>>>>random1.是否需要编写脚本重复执行很多次,并令key=0当random的值为0xdeadbeef时,即可拿到flag2.于是编写脚本....no3.rand()与srand()rand()是伪随机数生成器,如果没有设置种子,默认每次的种子数为1,每次执行的结果是相同的,所以random=rand()的结果是确定的而srand()相当于给rand()函数...原创 2018-03-16 20:09:04 · 208 阅读 · 0 评论 -
pwnable.kr第二遍---passcode
>>>>>passcode1.题目中有两个scanf("%d",addr)的不标准格式按照scanf()的使用,应该是将stdin的整型数赋值给地址addr处而接下来的passcode1==338150&&passcode2=13371337两个判断条件其中passcode1和passcode2是整型int addr;假如输入100则*addr=100...原创 2018-03-16 20:08:00 · 341 阅读 · 0 评论 -
pwnable.kr第二遍--flag
>>>>>flag1.UPX命令通用可执行文件压缩器压缩里搞;解压速度快....控制台应用程序,以命令行的方式进行操作,使用简单upx [-1d...] [-qvfk] [-o file] file..解压缩文件upx -d flag -o flag_upx2.xxd flag|tailxxd用于将文件以二进制或者十六进制的形式输出tail用于输入文件中获得尾部;默认...原创 2018-03-16 20:06:40 · 340 阅读 · 0 评论 -
pwnable.kr---mistake,shellshock,coin1
pwnable.kr—mistake,shellshock,coin1这三个题目基本主要思路还是看别人的writeup,所以就主要总结自己的收获吧。解题思路coin1shellshockmistake遇到的问题1.做coin1的时候怕是个智障,抄别人的代码都能抄错,在给服务器发送数据的时候,数据后边没有”\r\n”,服务器无法正确识别每次客户端发送的数据,所以……GG2.做shellshock的时候原创 2017-11-04 21:42:54 · 346 阅读 · 0 评论 -
Wechall刷题(二) Training: MySQL I 总结
Training: MySQL I 总结题目题目总结分为四个部分解题思路及部分答案个人疑惑以及疑惑解答常见的SQL注入语句收获:通过本地模拟环境测试原创 2017-08-15 10:53:16 · 1494 阅读 · 1 评论