Pwnable-cmd1
2024-08-31 03:48:46
ssh cmd1@pwnable.kr -p2222 (pw:guest)
先看一下c的源码
#include <stdio.h>
#include <string.h> int filter(char* cmd){
int r=;
r += strstr(cmd, "flag")!=;
r += strstr(cmd, "sh")!=;
r += strstr(cmd, "tmp")!=;
return r;
}
int main(int argc, char* argv[], char** envp){
putenv("PATH=/thankyouverymuch");
if(filter(argv[])) return ;
system( argv[] );
return ;
}
上面那个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 :)
最新文章
- ArrayList源码阅读笔记(基于JDk1.8)
- zookeeper 安装与配置
- 对 JimmyZhang 老师的文章《项目代码风格要求》的一些个人观点
- 操作SQLite数据库
- Majority Element || leetcode
- Linux平台下利用系统接口函数按照行读写文件
- 【笨嘴拙舌WINDOWS】实践检验之屏幕取色
- Qt入门(17)——组装复杂的控件
- SpringMVC介绍之约定优于配置
- freemarker 空白处理
- CultureInfo中重要的InvariantCulture
- Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试
- 用wrk测试nginx/ndoejs/golang
- &#39;boost/iterator/iterator_adaptor.hpp&#39; file not found之xcode生成时报错的解决方案
- 从零开始学习前端开发 — 14、CSS3变形基础
- JeeSite中Excel导入导出
- git的安装(和远程仓库建立连接)
- Dubbo+ZK与Eureka注册中心比较
- Android直接用手机打包apk!
- h5页面使用sessionStorage滚动到上次浏览器位置《原创》