pwnable.kr
记录pwnable.kr的解题笔记
SkYe231_
这个作者很懒,什么都没留下…
展开
-
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 · 285 阅读 · 0 评论 -
collision - pwnable
collision - pwnable1. 连接服务器&获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh col@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l这题与fd给出文件一样,不能直接读取flag,给出源代码;2. 运行程序、查看文件类型、保护措施我们先运行一下直接运行提示需要一...原创 2019-08-18 00:21:10 · 271 阅读 · 0 评论 -
bof - pwnable
bof - pwnable1.获取题目题目给出下载链接:程序文件;源码2. 运行程序、查看文件类型、保护措施在本地机上运行一下程序:运行提示需要输入一个passcode,随意输入一个密码提示Nah…查看文件类型:是32位动态链接的elf查看保护措施:3.分析源码因为题目有给出源码,所以先直接查看源码分析。#include <stdio.h>#include &...原创 2019-08-19 16:07:04 · 443 阅读 · 0 评论 -
flag - pwnable
flag - pwnable1.获取题目题目给出下载链接:程序2. 运行程序、查看文件类型、保护措施直接运行输出提醒 将flag变量在放在什么地方了,要求我们去找。是一个64位动态链接的elf发现Packer是UPX3.分析源码将题目所给程序放入IDA中分析,导入之后发现函数异常的少,注意一点没有运行时提示给我们的malloc()函数结合前面查看到程序有一条Packer属...原创 2019-08-22 01:09:29 · 270 阅读 · 0 评论 -
passcode - pwnable
passcode - pwnable本题运用到GOT表覆写技术,先摘取一段来自Jing0107关于Linux的GOT和PLT的知识:GOT表:概念:每一个外部定义的符号在全局偏移表(Global offset Table )中有相应的条目,GOT位于ELF的数据段中,叫做GOT段。作用:把位置无关的地址计算重定位到一个绝对地址。程序首次调用某个库函数时,运行时连接编辑器(rtld)找到...原创 2019-08-24 00:38:32 · 327 阅读 · 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 · 221 阅读 · 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 · 526 阅读 · 0 评论 -
uaf - pwnable
uaf - pwnable预备知识虚函数的内存地址空间在c++中,如果类中有虚函数(如下图中的 virtual void give_shell()),那么它就是有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。对于子类,最开始的内存数据记录着父类对象的拷贝(包含父类虚函数表指针和成员变量)。之后是子类自己的成员变量数据。子类的继承也分几种...原创 2019-09-14 14:59:54 · 528 阅读 · 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 · 444 阅读 · 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 · 306 阅读 · 0 评论 -
unlink - pwnable
预习知识什么是unlinkedunlinked 是堆溢出中的一种常见形式,通过将双向列表中的空闲块拿出来与将要free的物理相邻的块进行合并。(将双向链表上的chunk卸载下来与物理chunk合并)unlink漏洞条件有3个以上的空闲chunk链表,其中最前面的chunk存在有堆溢出unlink的触发当使用free函数释放正在使用的chunk时,会相应地检查其相邻的chunk是否空闲...原创 2019-09-30 00:13:21 · 486 阅读 · 0 评论 -
horcruxes-pwnable
前言这题考的是ROP系统攻击。百度百科是这样介绍的:简介:ROP全称为Return-oriented Programming(面向返回的编程)。是一种基于代码复用的攻击技术,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码。内在特征:1. ROP控制流中,call和ret指令不操纵函数,而是用于将函数里面的短指令序列的执行流串起来,但在正常的程序中,call和ret分别代表函数的开...原创 2019-10-04 11:10:50 · 791 阅读 · 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 · 522 阅读 · 0 评论 -
lotto - pwnable
lotto - pwnable题目题目是一个猜乐透号码的游戏,并且给出了源代码。先运行,看看游戏怎么运行的:输入 1 开启游戏,输入6位号码。程序进行判断,如此循环进行。分析6位数字乐透数字,说实话也不多,可以利用脚本自动输入。但是在脚本输入全部的组合后,仍然没有得到flag。难道乐透数字不是纯数字或者出现什么意外?我们来看看源码中有没有什么提示。第一个红框是lotto号码的...原创 2019-09-07 14:57:12 · 427 阅读 · 0 评论 -
blackjack - pwnable
blackjack - pwnable题目题目要求我们在21点游戏中,赢得100万,就可以获得flag。也给出源码源码分析连上服务器玩了几盘之后发现,赢是可以赢的,也可以写脚本自动运行,但是赚钱速度太慢。题目提示我们去看看源码,一番查看之后我们发现这个重点://Global Variablesint bet;int betting() //Asks user amount to ...原创 2019-09-05 11:08:35 · 307 阅读 · 0 评论 -
coin1 - pwnable
coin1 - pwnable题目脚本分析题目利用二分法找出假硬币。游戏需要进行100轮,每轮得一分。游戏与服务器交互????。需要注意一点,每一轮找出并输入假硬币之后,需要再一次输入假硬币的序号,开启下一轮的游戏或获得flag。~$ nc pwnable.kr 9007 --------------------------------------------------- - ...原创 2019-09-04 22:43:44 · 350 阅读 · 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 · 317 阅读 · 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 · 283 阅读 · 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 · 243 阅读 · 0 评论 -
input - pwnable
input - pwnable1.获取题目我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh input2@pwnable.kr -p2222,出现提示后输入密码guest查看目录下有的文件以及文件权限ls -l2. 运行程序直接运行,提示需要我们给出正确的输入才能获得flag。由于这题不涉及栈溢出等等操作,而是涉及有关于linux下的输入与输出的相关知识,就不查...原创 2019-08-30 15:04:49 · 324 阅读 · 0 评论