美文网首页PWN学习资料
Pwnable.kr题解(二)

Pwnable.kr题解(二)

作者: Sarace | 来源:发表于2019-06-18 09:13 被阅读0次

Pwnable.kr-02 collision

(一) 题目

首先ssh进去,ls查看一下都有什么东东。

1559284286027.png

和前一个一样,一个没有读取权限的flag,一个col.c,一个col的可执行程序。

直接看源码吧:

#include <stdio.h>
#include <string.h>
unsigned long hashcode = 0x21DD09EC;
unsigned long check_password(const char* p){
    int* ip = (int*)p;//把char指针转成int指针
    int i;
    int res=0;
    for(i=0; i<5; i++){//因为只有20个字符,一个字符一个字节,一个int4个字节,所以有5个int
        res += ip[i];
    }
    return res;//返回相加的结果
}

int main(int argc, char* argv[]){
    if(argc<2){//输入两个命令行参数
        printf("usage : %s [passcode]\n", argv[0]);
        return 0;
    }
    if(strlen(argv[1]) != 20){//检查第二个参数长度是否为20
        printf("passcode length should be 20 bytes\n");
        return 0;
    }

    if(hashcode == check_password( argv[1] )){//调用check_password函数,检查返回结果是否与hashcode相等
        system("/bin/cat flag");
        return 0;
    }
    else
        printf("wrong passcode.\n");
    return 0;
}

分析完了之后我们发现,我们需要输入20个字符,这20个字符会被4个一组转成int,之后5个int类型的数相加,结果要等于0x21DD09EC。

这该怎么办呢?这里用到了一个Linux的知识点,可以直接把python的输出变成程序的输入,

./col `python -c "print '\x01'*16+'\xe8\x05\xd9\x1d'"`

由于0x01010101 *4 + 0x1dd905e8 = 0x21dd09ec,所以我们可以使用16个0x01对应的字符,加上0xe8 0x05 0xd9 0x1d 对应的四个字符作为输入。这里还要注意的一个点是大小端序的问题。

1559290716760.png

这就得到了我们需要的flag。

相关文章

  • pwnable.kr 题解二

    0x01 codemap 1. 题目描述 2. 题目分析 我们直接看IDA反汇编后的代码: 经过分析我们可以看到,...

  • Pwnable.kr题解(二)

    Pwnable.kr-02 collision (一) 题目 首先ssh进去,ls查看一下都有什么东东。 和前一个...

  • pwnable.kr 题解一

    0x01 fd 文件描述符 0、1、2分别代表标准输入、标准输出和标准错误,所以输入0x1234的十进制值,再次...

  • pwnable.kr小白题解

    题目一(fd - 1 pt ) 打开题目,使用SSH链接到目标服务器。发现有三个文件分别为fd、fd.c 、fla...

  • Pwnable.kr-3.bof

    下载链接:http://pwnable.kr/bin/bofhttp://pwnable.kr/bin/bof.c...

  • Pwnable.kr系列

    pwnable.kr

  • pwnable.kr collision

    今天咱们来继续玩 pwnable.kr pwnable.kr collision 同样的,我们远程连接上服务器,然...

  • 黑客练手入门| pwnable.kr—幼儿瓶—01:fd

    [TOC] 前言 担心有人不知道pwnable.kr是什么,所以觉得有必要简单介绍一下它。 pwnable.kr介...

  • 109. Convert Sorted List to Bina

    题解一:类似二分查找,借助快慢指针找中点 题解二:

  • pwnable.kr flag

    pwnable.kr flag 题目给了提示,让我们去分析二进制代码。所以我们进 IDA 去看二进制代码来找到相关...

网友评论

    本文标题:Pwnable.kr题解(二)

    本文链接:https://www.haomeiwen.com/subject/gbkxqctx.html