- 博客(43)
- 收藏
- 关注
原创 长城杯2021 pwn
长城杯20211.K1ng_in_h3Ap_I2.K1ng_in_h3Ap_II菜鸡第一次在国内比赛做出两道题,害,长城杯比第五空间温柔多了,第五空间一道rop,之后就直接vm,musl都没学过,还有个c++逆向8出来。打完国赛(写了一道简单堆题,orw调一晚上没出来,服了)之后划水时间太长了,8月下旬才开始继续学堆,争取10月底前把vm,musl,mips,arm这种其他架构(不知道算不算)的pwn学习一下。1.K1ng_in_h3Ap_I题目给了3个字节libc地址,操作性还是挺强的,借用残留指针
2021-09-20 09:58:11
914
原创 津门杯pwn
目录hello嘿嘿,单独发纪念一下,首次在国内比赛做出一道pwn题(23/59)hello#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "amd64"filename = "hello"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)free_got=elf.got
2021-05-13 23:49:49
392
原创 pwn 堆入门之tcache
目录ciscn_final_3ciscn_2019_es_1ciscn_final_3#!/usr/bin/env python3# coding=utf-8from pwn import *arch = "amd64"filename = "ciscn_final_3"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)# libcl
2021-05-13 23:40:38
613
原创 BUU刷题 normal_heap
目录babyheap_0ctf_2017babyfengshui_33c3_2016babyheap_0ctf_2017#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "amd64"filename = "babyheap_0ctf_2017"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF
2021-05-13 23:35:55
227
原创 BUU刷题 easy_heap
目录easyheapmagicheapciscn_2019_n_3easyheap#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "amd64"filename = "easyheap"context(os="linux", arch=arch, log_level="debug")content = 1offset = 0# elfelf = ELF(filename)fake_heap_addr=0x6
2021-05-13 23:31:46
266
原创 BUU刷题 stack之调试
目录ciscn_2019_es_2ez_pz_hackover_2016spwnciscn_2019_es_2#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "i386"filename = "ciscn_2019_es_2"context(os="linux", arch=arch, log_level="debug")content = 1offset = 0# elfelf = ELF(filename
2021-05-13 23:20:47
212
原创 pwn 栈迁移之伪造栈帧
目录ciscn_2019_es_2spwnciscn_2019_es_2#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "i386"filename = "ciscn_2019_es_2"context(os="linux", arch=arch, log_level="debug")content = 1offset = 0# elfelf = ELF(filename)leave_ret=0x08048
2021-05-02 00:29:37
216
原创 redpwnctf 2020 pwn
目录coffer-overflow-0dead-canarycoffer-overflow-0第三道直接溢出返回到system("/bin/sh")就行了前两道都是覆盖一个变量,或者和第三道一样,直接返回也可以#!/usr/bin/env python2# coding=utf-8from pwn import *arch = "amd64"filename = "coffer-overflow-0"context(os="linux", arch=arch, log_level="d
2021-04-27 18:09:45
228
原创 HEROCTF WPICTF 2021 pwn签到
目录$m4 $hWinButTwisted$m4 $h#!/usr/bin/env python2from pwn import *arch = "amd64"filename = ""context(os="linux", arch=arch, log_level="debug")content = 1# elf#elf = ELF(filename)# libcdef main(): global io if content == 0: io =
2021-04-24 17:07:43
418
原创 CTFShow-36D 2020 pwn
目录pwn0PWN_MagicStringpwn0#!/usr/bin/env python2from pwn import *arch = "amd64"filename = "pwn0"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)pop_rdi_addr=0x00000000004006d3sys_addr=0x0000000000
2021-04-24 17:02:17
409
原创 hgame week1 2021 pwn
目录onceletteronce写这个题的时候发现了一个工具,可以修改题目加载的libc.so和ld.so文件patchelf注释掉的是本地环境下的情况#!/usr/bin/env python2#env1=ubuntu 16.04 native#env2=ld-2.27.so libc.2.27from pwn import *arch = "amd64"filename = "once"context(os="linux", arch=arch, log_level="d
2021-04-23 19:00:13
355
原创 ACTF 2020 pwn
目录fmt32shellcode太菜了,只会写模板题fmt32格式化字符串模板题#!/usr/bin/env python2from pwn import *arch = "i386"filename = "fmt32"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)a1_addr=0x0804A070a2_addr=0x0804A06
2021-04-23 18:10:54
303
1
原创 WPICTF 2020 pwn
目录dorsia1dorsia3dorsia4dorsia1#!/usr/bin/env python2from pwn import *arch = "amd64"filename = "dorsia1"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0x4d# elf#elf = ELF(filename)# libclibc=ELF("/lib/x86_64-linux-gnu/
2021-04-22 17:15:55
131
原创 pwn 堆入门之off by one
目录Asis CTF 2016 b00ksAsis CTF 2016 b00ks#!/usr/bin/env python2from pwn import *arch = "amd64"filename = "b00ks"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)menu_addr=0x0000000000000A89free_got
2021-04-18 17:18:50
277
原创 pwn 堆入门之unlink
目录stkofstkof#!/usr/bin/env python2from pwn import *arch = "amd64"filename = "stkof"context(os="linux", arch=arch, log_level="debug")content = 0#elfelf = ELF(filename)fgets_addr=0x0000000000400D16fill_addr=0x00000000004009E8free_got=elf.got['
2021-04-11 12:32:17
257
原创 pwn 堆入门之use after free
目录hacknotehacknote#!/usr/bin/env python2from pwn import *arch = "i386"filename = "hacknote"context(os="linux", arch=arch, log_level="debug")content = 0offset = 0# elfelf = ELF(filename)# libcdef add(i,size,content): io.sendline('1')
2021-04-11 12:27:33
214
原创 pwn srop
目录ciscn_s_3smallestciscn_s_3#!/usr/bin/env python2from pwn import*context(os="linux",arch="amd64",log_level="debug")content=0vuln_addr=0x00000000004004EDsyscall_addr=0x0000000000400517sig_addr=0x00000000004004DAdef b(addr): bk="b*"+str(addr)
2021-04-03 23:15:26
225
原创 pwn libc之Dynelf工具
目录pwn-100pwn-200welpwnDynelf工具可以根据泄露出的地址找到相应libc版本的其他函数地址,但缺点时不能查找字符串也就是"/bin/sh"的地址,所以找到system函数后,往往还需要找到一个可写的地方用read函数读取"/bin/sh"pwn-100#!/usr/bin/env python3from pwn import *context(os="linux", arch="amd64", log_level="debug")contentt = 1#elfe
2021-04-02 20:50:50
581
原创 pwn 堆入门之fastbin attack
目录floworeob站原本有一个对堆基础讲的挺好的,好像叫pwn术进阶的堆溢出,但刚刚去看已经没了,好家伙,还好我刚看完,哈哈哈。flow涅普计划-ctf入门课堆溢出#!/usr/bin/env python2from pwn import *context(os="linux", arch="amd64", log_level="debug")#libclibc=ELF("libc.so.6")malloc_libc=libc.symbols['__malloc_hook']m
2021-04-02 20:36:46
368
原创 Jarvis OJ pwn刷题
目录level1level3level3_x64smasheslevel1#!/usr/bin/env python3from pwn import *context(os="linux", arch="i386", log_level="debug")content = 1def main(): if content == 0: io = process("./level1.80eacdcd51aca92af7749d96efad7fb5") else:
2021-03-26 17:30:51
276
原创 buu pwn刷题(2)
目录get_started_3dsctf_2016not_the_same_3dsctf_2016ciscn_2019_n_8bjdctf_2020_babystackone_gadgetbaby_roplevel2_x64ciscn_2019_n_52018_ropget_started_3dsctf_2016#!/usr/bin/env python3from pwn import*context(os="linux",arch="i386",log_level="debug")content
2021-03-16 18:52:15
187
原创 pwn 整型溢出
目录int_overflow 攻防世界r2t3 BUUoverflowint_overflow 攻防世界file checksecida32,进入login输入一个用户名,再输入一个passwd,都无法直接栈溢出,进入check_passwd发现v3是输入passwd的长度,v3是unsigned __int8类型范围是0~255如果s的长度超过255,会变为(对s长度取模运算)得到的值。而s的长度不能大于0x199(409),取模后 v3>3&&v3<=
2021-03-09 16:11:59
524
2
原创 pwn ret2libc
目录1.攻防世界 level32.buu babyrop3.buu ciscn_2019_c_11.攻防世界 level3把文件放到kali里面发现是一个压缩包(放入exeinfo里面也可以发现是压缩包),解压缩得到level3和libc.so文件file checksecida32进入漏洞函数vunl(),发现有栈溢出漏洞没有system函数和/bin/sh题目提示了用libc。libc.so是一个函数库(类似于C语言#include<iostream>的iostrea
2021-02-04 23:24:43
580
原创 CTFhub pwn
这里写目录标题1.ret2text2.ret2shellcode1.ret2textfile checksecida64gets函数有栈溢出漏洞,题目为ret2text即返回到text段得到shellshift+f12打开字符串窗口,找到/bin/sh点进去,选中/bin/sh,右键,交叉引用列表(可以找到使用/bin/sh的地方)看到把/bin/sh放入rdi后,调用了systemx64,64位系统中rdi,rsi,rdx,rcx,r8,r9作为调用函数的前6个参数,如果参数多于6
2021-02-04 17:55:05
1411
3
原创 攻防世界 pwn
目录1.get_shell2.when_did_you_born3.hello_pwn4.level05.level26.cgpwn21.get_shellnc连接题连接后ls | cat flag2.when_did_you_bornfile checksec有canary保护,不能栈溢出ida64先输入v5,v5不能等于1926。再输入v4,注意有gets函数,不限制输入,但无法溢出,点进去v4,v5发现var_18是v5,var_20是v4,那么可以输入v4时将v5的值覆盖为19
2021-02-02 14:48:15
714
原创 NameError: name ‘process‘(context) is not defined解决方法
python中不能用关键字作为名字,否则会引用错误eg:在做pwn题时,需要用from pwn import*,所以不要用pwn为文件名,否则会报错参考链接:pwntools报错“NameError: name ‘process’ is not defined”命名py脚本时,不要与python预留字,模块名等相同。...
2021-02-02 08:46:07
2274
原创 TypeError: ljust() argument 2 must be a byte string of length 1, not str
ljust(num,char)num:填充后的总长度char:字符或长度为一的字符串注意在新版本python中可能需要用 b'char' 发送字节流数据
2021-02-02 08:46:00
3809
1
原创 buuctf pwn刷题(1)
目录1.test_your_nc2.pwn13.warmup_csaw_20161.test_your_nc先用exeinfo查壳,是64位的程序用64位ida静态分析一下,找到main函数F5反汇编,看到system("/bin/sh")system()的作用———执行shell命令也就是向dos发送一条指令。即执行/bin/sh命令,获得shell权限用虚拟机连node3.buuoj.cn:27191nc node3.buuoj.cn 27191查看文件目录ls查看flag
2021-01-30 17:38:02
1237
1
原创 寒假第一周学习总结
目录计算机语言python汇编语言debug的基础指令汇编程序exe的形成CTFACM计算机语言python字典 (内部由‘键’和‘值’组成,可包含列表)字典.keys(),.values()函数来遍历字典集合与字典都用花括号{ }定义,但集合没有‘值’while循环—> while 某一条件:了解了一些爬虫知识汇编语言这周主要学了汇编的前五章计算机中用二进制来表示指令和数据,指令和数据本质上无任何区别CPU要进行数据读写需要3种信息(地址信息,控制信息,数据信息
2021-01-21 22:46:27
505
原创 信息学奥赛一本通 递推算法
目录昆虫繁殖位数问题过河卒斐波那契数列(2)Pell数列上台阶昆虫繁殖法一#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ long long a[100]={0},x=0,y=0,z=0; cin>>x>>y>>z; for(int i=0;i<x+2;i++) { if(i<x)
2020-12-15 18:03:08
419
原创 信息学奥赛一本通 排序算法
目录选择排序冒泡排序三级目录选择排序#include<iostream>using namespace std;int main(){ int a[100001]; int x,i=0; while(cin>>x&&x!=0) { a[i]=x; i++; } for(int j=0;j<i;j++) { int min=a[j],sy=j; for(int k=j+1;k<i;k++) if(min>a
2020-12-11 21:51:55
983
原创 信安实验室 第二周 学习总结
目录计算机语言方面c++python汇编语言ctf 二进制reverse计算机语言方面c++做了几道题,写了高精度乘法的两种形式(存储数组每位存10以内数字和每位存1000以内数字,后一种有好多细节要处理),了解了sort函数排序结构体的方法,定义一个cmp函数作为sort函数的第三个参数。python了解了 列表 的使用方法及相关函数的应用.append(所添加值).insert(位置,所添加值).pop(可为空也可为位置)del list[位置].sort(空为从小到大或revers
2020-12-05 18:32:55
194
原创 攻防世界 reverse 新手题wp (第二周)
目录re1思路game思路Hello, CTF思路re1题目描述:菜鸡开始学习逆向工程,首先是最简单的题目思路拖入ida,转伪代码int __cdecl main(int argc, const char **argv, const char **envp){ int v3; // eax __int128 v5; // [esp+0h] [ebp-44h] __int64 v6; // [esp+10h] [ebp-34h] int v7; // [esp+18h] [ebp-
2020-12-01 12:02:53
1363
原创 vjudge 河大acm练习 新生选拔赛
目录前言A - 闫老板的爱情故事题目描述代码实现B - 龙老板的爱情故事题目描述代码实现C - 王老板的幼儿园题目描述代码实现(wr了,还不知道哪错了)(11/15)D - 李老板的LJQ函数题目描述代码实现E - 常老板的QS公司题目描述代码实现F - 龙老板的工具小人题目描述代码实现G - 铭铭的龙龙的大西瓜题目描述代码实现H - 李老板给女朋友的礼物题目描述代码实现I - 闫老板看女朋友题目描述代码实现J - 常老板的疑问题目描述代码实现前言题目链接因为2-5点比赛,但2点半有周会,(偷偷写的)
2020-11-29 19:38:25
1093
1
原创 信安实验室 第一周 学习总结
目录计算机语言方面c++vectorpython汇编语言ctf 二进制reverse计算机语言方面c++高中学过一段时间,有一点儿基础,在leetcode上做了几道题,基本上都是暴力循环解决,还有写了高精度加减法,复习一下。vector不定长度的数组,可以一直加元素,和字符串中的string感觉差不多。vector.size()可以计算元素个数string.length()可以计算字符的个数注意:sizeof()函数是计算内存数并非计算元素个数可以用 .size() 或者用 (size
2020-11-28 17:38:22
172
原创 攻防世界 reverse 新手题wp (第一周)
目录open-source思路insanity思路python-trade思路open-source题目描述:菜鸡学逆向学得头皮发麻,终于它拿到了一段源代码直接给了一段源代码,读懂源码即可思路#include <stdio.h>#include <string.h>int main(int argc, char *argv[]) { //代码中有四个if语句,每个if语句中的条件都必须不成立才能得到key if (argc != 4) {
2020-11-24 21:32:24
447
2
原创 leetcode 简单难度 罗马数字转整数
目录题目思路代码实现题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I -------1V ------5X -----10L ------50C -----100D -----500M ----1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 X
2020-11-22 17:24:02
73
原创 leetcode 简单难度 有效的括号
目录题目思路代码实现过程中出现的问题题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出:
2020-11-22 17:21:11
89
原创 信息学奥赛一本通 高精度计算
高精度加法#include<iostream>#include<string>using namespace std;int maxlen=0;void init(int a[]){ string s; int slen; cin>>s; if(s.length()>maxlen) { maxlen=s.length(); } slen=s.length(); for(int i=1;i<=slen;i++) { a[i
2020-11-22 12:49:18
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人