首页 > 其他 > 详细

Pwnable-cmd1

时间:2019-10-29 12:21:12      阅读:131      评论:0      收藏:0      [点我收藏+]

ssh cmd1@pwnable.kr -p2222 (pw:guest)

先看一下c的源码

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

int filter(char* cmd){
    int r=0;
    r += strstr(cmd, "flag")!=0;
    r += strstr(cmd, "sh")!=0;
    r += strstr(cmd, "tmp")!=0;
    return r;
}
int main(int argc, char* argv[], char** envp){
    putenv("PATH=/thankyouverymuch");
    if(filter(argv[1])) return 0;
    system( argv[1] );
    return 0;
}

上面那个filter函数把flag  sh  tmp都过滤掉了,输入的参数可以用system调用

过滤掉了关键字,怎么办

我们可以用通配符的方式来获得flag

技术分享图片

 

 

还有一种就是修改环境变量

 putenv("PATH=/thankyouverymuch");

在/tmp/thankyouverymuch下面添加一个bash脚本,之后让system调用

新建一个bash脚本

技术分享图片

输入/bin/cat /home/cmd1/flag

 技术分享图片

 之后赋予它755的权限

技术分享图片

在执行 相当于调用system(‘./gnq’)

 技术分享图片

 

mommy now I get what PATH environment is for :)

Pwnable-cmd1

原文:https://www.cnblogs.com/gaonuoqi/p/11757267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!