pwnable.kr系列刷题之09-mistake
从提示信息来看,本题和操作符优先级相关,具体信息如下:
照例ssh链接查看源码等信息:
从服务器把mistake.c下载下来查看漏洞源码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <stdio.h>#include <fcntl.h>#define PW_LEN 10#define XORKEY 1void xor(char* s, int len){ int i; for(i=0; i<len; i++){ s[i] ^= XORKEY; }}int main(int argc, char* argv[]){ int fd; if(fd=open("/home/mistake/password",O_RDONLY,0400) < 0){ printf("can' ...
pwnable.kr系列刷题之08-leg
题目描述如下,看起来是和arm汇编相关,提供了ssh链接以及对应文件的下载地址:
将对应文件下载,ssh链接上服务器,开始做题,其中leg.c和leg.asm内容如下:
1234567891011121314151617181920212223242526272829303132333435363738#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" "mov r3, pc\n" "add r3, $0x4\n" "push & ...
pwnable.kr系列刷题之07-input
看提示信息,该题也是一个和input相关的题目,信息如下:
连上去看文件和权限,同时可以把源码和程序都到本地便于调试分析:
input.c源码及反编译代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h> int main(int argc, char* argv[], char* envp[]){ printf("Welcome to pwnable.kr\n"); printf("Let's see if you know how ...
pwnable.kr系列刷题之06-random
从描述信息来看,本道题是关于随机数的题目,提示信息如下:
ssh登上查看文件及权限:
查看random.c源代码并反汇编后分析:
123456789101112131415161718#include <stdio.h>int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == 0xdeadbeef ){ printf("Good!\n"); system("/bin/cat flag"); return 0; } printf("Wrong, maybe you should try 2^32 cases.\n"); return 0;}
123456789101112131415161718192021222324252 ...
pwnable.kr系列刷题之05-passcode
这道题目,从描述来看说是写了一个密码登录系统,编译时有warning无error,题目信息如下:
还是通过ssh链接查看题目内容,ssh passcode@pwnable.kr -p2222 (pw:guest),题目里的东西还是老几样,重点关注文件权限:
然后查看passcode.c源码,如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243#include <stdio.h>#include <stdlib.h>void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1) ...
pwnable.kr系列刷题之04-flag
这道题看描述是一道CTF reverse题,主要是考验动静结合的逆向能力,不同于pwn:
wget下载下来,顺便查看flag文件类型,为64位elf文件:
运行后提示:I will malloc() and strcpy the flag there. take it.
先静态分析一下,程序被加了upx壳,
将其脱壳再拖入IDA分析,代码很简单一目了然,跟进flag即可拿到对应的flag为:UPX…? sounds like a delivery service
这里也可以gdb动态调试一下脱壳后的样本,在strcpy处(0x401195)设置断点,然后查看esi中对应字符串内容:
pwnable.kr系列刷题之03-bof
通过该题的下载链接下载到源码和编译后的程序,提示如下:
1234567Nana told me that buffer overflow is one of the most common software vulnerability.Is that true? Download : http://pwnable.kr/bin/bofDownload : http://pwnable.kr/bin/bof.c Running at : nc pwnable.kr 9000
题目代码如下 bof.c:
123456789101112131415161718#include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me! if(key == ...
pwnable.kr系列刷题之02-collision
第二题,是一道关于MD5 hash碰撞的 题目,使用ssh链接,题目详情如下:
先链接上看看,密码guest:
还是熟悉的几个文件,col.c是包含漏洞的源码、col为编译后的文件、flag是我们要读取的文件。当前用户col对于flag依旧没有读写权限,要读取flag内容,观察col_pwn就可以发现原理和fd依旧相同,这里直接分析col.c既可,其源代码内容如下:
12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <string.h>unsigned long hashcode = 0x21DD09EC;unsigned long check_password(const char* p){ int* ip = (int*)p; int i; int res=0; for(i=0; i<5; i++){ res += ip[i]; } ret ...
pwnable.kr系列刷题之01-fd
题目:
该题是第一道题,通过描述来看是和Linux描述符相关的题目,如下:
首先使用ssh远程链接linux服务器,括号中为密码guest,链接后如下:
查看文件,其中用于登录的fd用户,对于flag并无任何读写权限,而可以可能到fd对于fd.c具有读取权限,所以我们可以查看fd.c的代码进行漏洞利用来获取flag信息:
fd.c代码如下:
123456789101112131415161718192021#include <stdio.h>#include <stdlib.h>#include <string.h>char buf[32];int main(int argc, char* argv[], char* envp[]){ if(argc<2){ printf("pass argv[1] a number\n"); return 0; } int fd = atoi( argv[1] ) - ...
谈一谈驱动人生木马
本文是作者在奇安信威胁情报中心公众号发布的文章永恒的对手:永恒之蓝挖矿木马的前世今生,这里在个人博客做个记录。
1. 概述 “驱动人生”劫持木马是在18年12月份爆发的一次攻击,木马团伙通过劫持驱动人生升级服务器下发该木马致使大量客户中招。此木马近年来一直处于活跃状态,攻击、传播手法持续更新。在进行客户侧应急时,我们经常会遇到该系列木马,由于该木马使用的攻击与传播手段基本覆盖了常见的各种方法,此木马在内网的流行程度反而在一定程度上反映了一个网络的安全性,甚至可以用来作为指标来评估内网的安全程度。
鉴于此种情况,我们认为有必要对“永恒之蓝木马下载器”(由于病毒发展,逐步脱离了最初得驱动人生模块,后文都用此称呼来描述)进行一个总结性的整理,本文从该木马功能演进角度出发,说明了各个时间点木马的特性并对木马中的各个模块进行了一个简单的分析。
00 时间线梳理 对“永恒之蓝木马下载器”系列木马更新时间线进行整理如下:
2. 最初的攻击方式 2018年12月14日,“永恒之蓝木马下载器”攻击爆发,攻击者利用驱动人生团队外出团建的时机,开始了一次蓄谋已久 ...