
PWN
SkYe231_
这个作者很懒,什么都没留下…
展开
-
linux系统调用号查询(pwn)
在线查询链接:https://syscalls.w3challs.com/分为32位和64位,链接中还有arm、mips等架构的系统调用号。32位cat /usr/include/asm/unistd_32.h #ifndef _ASM_X86_UNISTD_32_H#define _ASM_X86_UNISTD_32_H 1#define __NR_restart_syscall 0#define __NR_exit 1#define __NR_fork 2#define __NR_r原创 2020-07-06 23:21:44 · 984 阅读 · 0 评论 -
攻防世界-pwn1-Writeup
pwn1考点:栈溢出,canary绕过基本情况程序实现功能是往栈上读写数据。保护措施Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x400000)栈溢出...... while ( 1 ) { menu(); v3 = my_input(); switch ( v3 ) {原创 2020-05-13 23:13:48 · 472 阅读 · 0 评论 -
pwn题查找字符串方法记录
记忆力不太好,简单记录一下,用作备忘假设现在有文件如下:待 Pwn 程序:mypwnlibc 文件:libc.so需要查找的字符串 /bin/sh 在上诉两个文件中都存在。查找程序中的字符串0x0 IDA strings window将程序加载到 IDA 后,使用快捷键 shift+F12 打开 strings window ,查看程序中出现的全部字符。0x1 Linux...原创 2020-04-04 22:20:59 · 5217 阅读 · 0 评论 -
第一届百度杯线上初赛 - try to pwn
第一届百度杯线上初赛 - try to pwn题目涉及:伪造文件流(FILE Stream)调整栈帧(stack pivot)源码分析题目给的是一个32位静态编译的程序,保护开启情况如图:程序的大概业务流程是打开名为输入名称+随机数文件的随机内容的文件,然后可以读取并输出这个文件的内容。在 welcome 函数读入用户名时,没有限制输入长度,存在缓冲区溢出。变量 x 位...原创 2020-01-17 00:52:02 · 576 阅读 · 0 评论 -
pwn5 - bugku
pwn5 - bugku本文并未真正意义上的writeup,因为我无法成功复现???只是单纯记录一下,做题笔记首先看一下保护,只开了NX。没有危险函数,如system、getshell等main函数中的变量s,在read函数时可以造成溢出。当中的if条件是限制程序的第二次输入必须包含真香、鸽子两个字符串。当中的重点是printf存在格式化字符串漏洞,我们可以从这里读取到main函...原创 2019-11-02 01:25:09 · 888 阅读 · 4 评论 -
Pwn4 - Bugku
Pwn4 - Bugku程序基本情况程序为64位,保护全关代码审计在main()函数中的read造成了栈溢出IDAshift + F12检查有没有可疑字符串,同时检查有没有特殊函数如getshell()在sub_400751()里面出现了调用system()思路main()函数存在栈溢出,可调用system()getshell,但是缺少一个参数/bin/sh。在字符串查找中...原创 2019-10-22 22:55:06 · 427 阅读 · 0 评论 -
第二届海啸杯部分题目Writeup
第二届海啸杯部分题目Writeup文章目录第二届海啸杯部分题目WriteupMisc签到题flag老烟枪flag表白flag小明的求助flag密码学恺撒将军flag小明家的小菜园flag战报flagreversebaby reverseflageasy reverseflag霸王别姬flag电竞选手flagPwnshellcode脚本simple_stackoverflow脚本Misc签到题...原创 2019-10-21 16:58:02 · 1392 阅读 · 0 评论 -
blackjack - pwnable
blackjack - pwnable题目题目要求我们在21点游戏中,赢得100万,就可以获得flag。也给出源码源码分析连上服务器玩了几盘之后发现,赢是可以赢的,也可以写脚本自动运行,但是赚钱速度太慢。题目提示我们去看看源码,一番查看之后我们发现这个重点://Global Variablesint bet;int betting() //Asks user amount to ...原创 2019-09-05 11:08:35 · 341 阅读 · 0 评论 -
lotto - pwnable
lotto - pwnable题目题目是一个猜乐透号码的游戏,并且给出了源代码。先运行,看看游戏怎么运行的:输入 1 开启游戏,输入6位号码。程序进行判断,如此循环进行。分析6位数字乐透数字,说实话也不多,可以利用脚本自动输入。但是在脚本输入全部的组合后,仍然没有得到flag。难道乐透数字不是纯数字或者出现什么意外?我们来看看源码中有没有什么提示。第一个红框是lotto号码的...原创 2019-09-07 14:57:12 · 467 阅读 · 0 评论 -
cmd1 - pwnable
cmd1 - pwnable题目运行程序,提示段错误程序停止。分析运行程序无提示信息,分析源码。#include <stdio.h>#include <string.h>int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r...原创 2019-09-07 22:36:09 · 546 阅读 · 0 评论 -
cmd2 - pwnable
cmd2 - pwnable题目这题是cmd1的升级版,直接运行无法运行程序的。就直接看源码吧~pw:mommy now I get what PATH environment is for :)分析#include <stdio.h>#include <string.h>int filter(char* cmd){ int r=0; r += str...原创 2019-09-08 17:25:30 · 556 阅读 · 0 评论 -
堆与栈
堆与栈数据结构的堆和栈堆和栈都是一种数据项按序排列的数据结构。栈是一个桶栈就是一个装数据桶,是因为它是一种后进先出性质的数据结构。也就是后放入栈的数据,要先取出。这个过程相当于我们要取出桶最底的东西,我们就需要先取出上层东西一样。堆是一个倒置的树堆是一种经过排序的树形数据结构,每个结点都有一个值。因为堆的这个结构,所以堆的存取是随意的。虽然数据的存放是有顺序的,但是我们不需要按照...原创 2019-09-13 16:47:54 · 881 阅读 · 0 评论 -
uaf - pwnable
uaf - pwnable预备知识虚函数的内存地址空间在c++中,如果类中有虚函数(如下图中的 virtual void give_shell()),那么它就是有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。对于子类,最开始的内存数据记录着父类对象的拷贝(包含父类虚函数表指针和成员变量)。之后是子类自己的成员变量数据。子类的继承也分几种...原创 2019-09-14 14:59:54 · 588 阅读 · 0 评论 -
memcpy - pwnable
memcpy - pwnable题目题目只给出源码和readme文档,就直接po出来。#readmethe compiled binary of "memcpy.c" source code (with real flag) will be executed under memcpy_pwn privilege if you connect to port 9022.execute th...原创 2019-09-15 18:08:51 · 482 阅读 · 0 评论 -
asm - pwnable
asm - pwnable题目Mommy! I think I know how to make shellcodesssh asm@pwnable.kr -p2222 (pw: guest)readme文件给出提示:once you connect to port 9026, the "asm" binary will be executed under asm_pwn privi...原创 2019-09-20 00:06:34 · 345 阅读 · 0 评论 -
2019广东省强网杯PWN-1
2019广东省强网杯PWN-1题目分析题目提供了:可执行文件、libc.so.6两个文件。下面开始分析,首先运行程序,如下图所示:这是一道菜单题目,可以添加、删除、运行。是一道在堆上的题目。然后用IDA分析程序的流程。首先看看主函数(main),对其中的部分函数做了重命名(在图中红框内函数),可以参照修改。主函数主函数循环执行,直到遇到exit()。首先是运行welcome_bro...原创 2019-09-24 22:21:20 · 822 阅读 · 0 评论 -
PWN环境配置(9.25更新)
PWN环境安装(19.9.25更新)虚拟机环境VMware® Workstation 14 Proos:Ubuntu 18.04(安装vmtools)python环境python2 & python3//python2sudo apt-get install python//python3sudo apt-get install python3pip2 &am...原创 2019-09-25 16:48:12 · 414 阅读 · 0 评论 -
unlink - pwnable
预习知识什么是unlinkedunlinked 是堆溢出中的一种常见形式,通过将双向列表中的空闲块拿出来与将要free的物理相邻的块进行合并。(将双向链表上的chunk卸载下来与物理chunk合并)unlink漏洞条件有3个以上的空闲chunk链表,其中最前面的chunk存在有堆溢出unlink的触发当使用free函数释放正在使用的chunk时,会相应地检查其相邻的chunk是否空闲...原创 2019-09-30 00:13:21 · 526 阅读 · 0 评论 -
horcruxes-pwnable
前言这题考的是ROP系统攻击。百度百科是这样介绍的:简介:ROP全称为Return-oriented Programming(面向返回的编程)。是一种基于代码复用的攻击技术,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码。内在特征:1. ROP控制流中,call和ret指令不操纵函数,而是用于将函数里面的短指令序列的执行流串起来,但在正常的程序中,call和ret分别代表函数的开...原创 2019-10-04 11:10:50 · 828 阅读 · 0 评论 -
pwn学习资源
pwn学习资源原文链接:https://www.jianshu.com/p/a955ff04534e学习思路:学习各种套路写有漏洞的程序 -> pwnCTF练习网站:http://pwnable.krhttps://pwnable.twhttps://www.jarvisoj.comhttps://github.com/ctfsWargamesROP Empo...转载 2019-07-28 15:32:47 · 451 阅读 · 0 评论 -
coin1 - pwnable
coin1 - pwnable题目脚本分析题目利用二分法找出假硬币。游戏需要进行100轮,每轮得一分。游戏与服务器交互????。需要注意一点,每一轮找出并输入假硬币之后,需要再一次输入假硬币的序号,开启下一轮的游戏或获得flag。~$ nc pwnable.kr 9007 --------------------------------------------------- - ...原创 2019-09-04 22:43:44 · 377 阅读 · 0 评论 -
shellshocke - pwnable
shellshocke - pwnable题目连接服务器:ssh shellshock@pwnable.kr -p2222 (pw:guest)shellshock源码:#include <stdio.h>int main(){ setresuid(getegid(), getegid(), getegid()); setresgid(getegid(), ...原创 2019-09-01 11:08:11 · 354 阅读 · 0 评论 -
passcode - pwnable
passcode - pwnable本题运用到GOT表覆写技术,先摘取一段来自Jing0107关于Linux的GOT和PLT的知识:GOT表:概念:每一个外部定义的符号在全局偏移表(Global offset Table )中有相应的条目,GOT位于ELF的数据段中,叫做GOT段。作用:把位置无关的地址计算重定位到一个绝对地址。程序首次调用某个库函数时,运行时连接编辑器(rtld)找到...原创 2019-08-24 00:38:32 · 370 阅读 · 0 评论 -
bof - pwnable
bof - pwnable1.获取题目题目给出下载链接:程序文件;源码2. 运行程序、查看文件类型、保护措施在本地机上运行一下程序:运行提示需要输入一个passcode,随意输入一个密码提示Nah…查看文件类型:是32位动态链接的elf查看保护措施:3.分析源码因为题目有给出源码,所以先直接查看源码分析。#include <stdio.h>#include &...原创 2019-08-19 16:07:04 · 476 阅读 · 0 评论 -
PWN简单栈溢出漏洞获取shell
PWN简单栈溢出漏洞获取shell题目来源下载链接(密码akcz)CTF的时候需要的是获取系统shell,然后通过shell去拿到flag。条件所限,那我们就先将程序放本地。也就是本地机也充当远程服务器角色1. 运行程序、查看文件类型、保护措施程序输出一段应该是内存地址的16位字符串;接着要求我们输入,之后就结束运行程序。程序为32位动态链接的ELF文件可以看到NX保护关...原创 2019-08-13 16:49:12 · 2944 阅读 · 0 评论 -
pwn入门学习
pwn学习(一)原文链接:https://segmentfault.com/a/1190000015979702实战前的准备pwn在ctf中算是一个门槛较高的分支,而且这方面的资料也相对较少,所以学习pwn的人也是相对较少的。我本人呢,是一个菜鸟,本科不是计算机系的,学习这个完全是出于兴趣。写这些东西,一来是记录自己的学习状况,二来呢,就是希望给正准备踏上pwn这条路的朋友们,提供一点思...转载 2019-07-28 15:34:54 · 1205 阅读 · 0 评论 -
pwn入门的一些学习资料
pwn入门的一些学习资料原文链接:https://www.jianshu.com/p/7133863623e6总结记录一下pwn入门的一些学习资料pwn入门学习的网站:CTF Wiki必备技能:汇编语言要搞pwn首先要懂汇编吧,毕竟是搞二进制的建议看王爽写的那本汇编语言,将书本的实验做一遍,然后再了解一下AT&T和intel两种汇编代码风格有什么不同可以看下这篇博客...转载 2019-07-28 15:30:28 · 1704 阅读 · 0 评论 -
Linux GDB调试C语言
Linux GDB调试C语言1. 安装gdb一般的服务器版本linux没有自带gdb,需要自行安装。已经安装直接跳第二节sudo apt-get updatesudo apt-get install gdb2. 使用gdb调试启用gdb调试工具gdb [调试程序名]。如:gdb swap调试方法查看源码list [行号]、l [行号]。行号为开始查看的行号设置断点...原创 2019-07-26 16:29:44 · 388 阅读 · 0 评论 -
linux下编译C语言常用命令(未完待续)
linux下编译C语言常用命令(未完待续)1. 文件管理相关的命令Linux命令作用举例mkdir新建文件夹mkdir test、mkdir -p /test/test1cd进入工作目录cd testls列出当前文件夹下的文件ls、ls -R、ls -apwd查看当前所在目录pwdcp将A复制到Bcp A B、cp A...原创 2019-07-26 11:46:06 · 4352 阅读 · 0 评论 -
linux GCC编译C程序
linux GCC编译C程序GCC已不再是主要针对GNU项目自身的软件的小型C语言编译器了。如今,它已支持了许多不同的语言,包括C、C++、Ada、Fortran、Objective C,甚至还有Java。利用gcc原理上是经过两步编译的,分别生成目标代码和Linux可执行程序。1. 编译单个源文件hello_linux.c#include<stdio.h>#incl...原创 2019-07-25 23:35:59 · 1244 阅读 · 0 评论 -
random - pwnable
random - pwnable1.获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh random@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l2. 运行程序、查看文件类型、保护措施没有任何提示输出,直接要求输入。输入随机字符串后,提示:错误,请尝试2^32 cases查看文件的基本信息:64...原创 2019-08-24 16:23:47 · 250 阅读 · 0 评论 -
PWN简单堆栈溢出漏洞利用(一)
gets 函数栈溢出题目来源下载链接(密码akcz)题目需要读取flag文件才能正确显示出flag,也就是下文中显示的 This is flag创建办法:在/home/pwn/pwn0目录下创建一个名为flag文件,打开并写入This is flag1. 运行程序、查看文件类型、保护措施程序让我们输入一段字符串,并返回我们所输入的内容。看到是一个 32位 动态链接的ELF...原创 2019-08-12 11:37:30 · 2350 阅读 · 0 评论 -
PwnTool库 IO模块
PwnTool库 IO模块INrecv(numb=4096, timeout=default) : 给出接收字节数,timeout指定超时;也就是接收够字节数&到时间就停止recvuntil(delims, drop=False) : 接收到delims的pattern(以下可以看作until的特例)recvline(keepends=True) : 接收到\n,keepen...原创 2019-08-15 21:50:12 · 784 阅读 · 0 评论 -
mistake - pwnable
mistake - pwnable1.获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh mistake@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l2. 运行程序直接运行:提示“do not bruteforce…”,程序停止直到按下回车。提示“input password:”要求输入密码,随意输...原创 2019-08-31 17:52:23 · 311 阅读 · 0 评论 -
leg - pwnable
leg - pwnable.kr题目源码&ASM文件#include <stdio.h>#include <fcntl.h>int key1(){ asm("mov r3, pc\n");}int key2(){ asm( "push {r6}\n" "add r6, pc, $1\n" "bx r6\n" ".code 16\n" "...原创 2019-08-31 09:09:42 · 274 阅读 · 0 评论 -
input - pwnable
input - pwnable1.获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh input2@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l2. 运行程序直接运行,提示需要我们给出正确的输入才能获得flag。由于这题不涉及栈溢出等等操作,而是涉及有关于linux下的输入与输出的相关知识,就不查...原创 2019-08-30 15:04:49 · 362 阅读 · 0 评论 -
collision - pwnable
collision - pwnable1. 连接服务器&获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh col@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l这题与fd给出文件一样,不能直接读取flag,给出源代码;2. 运行程序、查看文件类型、保护措施我们先运行一下直接运行提示需要一...原创 2019-08-18 00:21:10 · 303 阅读 · 0 评论 -
fd - pwnable
fd-pwnable.kr1. 连接服务器&获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh fd@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -lfd为应用程序;fd.c是程序的c源代码;flag自然是目标文件,我们目标就是需要读取flag文件里面的内容我们登录的帐号是fd,没有权限读取fla...原创 2019-08-17 22:44:21 · 310 阅读 · 0 评论 -
checksec 保护机制
checksec 保护机制检查程序保护机制checksec [filename]返回保护机制开启情况 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000)...原创 2019-08-13 10:51:09 · 1381 阅读 · 0 评论 -
flag - pwnable
flag - pwnable1.获取题目题目给出下载链接:程序2. 运行程序、查看文件类型、保护措施直接运行输出提醒 将flag变量在放在什么地方了,要求我们去找。是一个64位动态链接的elf发现Packer是UPX3.分析源码将题目所给程序放入IDA中分析,导入之后发现函数异常的少,注意一点没有运行时提示给我们的malloc()函数结合前面查看到程序有一条Packer属...原创 2019-08-22 01:09:29 · 301 阅读 · 0 评论