考察点:软链接

ln -s target_filename symlink_filename将上述命令中的target_filename用符号链接将要指向的相对路径或者绝对路径进行替换。在通常的情况下,目标文件应该存在。但是也可以创建一个指向不存在目标的符号链接。将symlink_filename用希望的符号链接名替换。这条ln命令将会创建一条符号链接。当创建完符号链接之后,可以将symlink_filename当作target_filename的别名看待。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。

题目描述:绕过代码中的限制,读出token文件的内容

/home/flag04文件夹下有两个文件:flag04 和 token ,其中 flag04 的源码是:

 1 #include <stdlib.h>
 2 #include <unistd.h>
 3 #include <string.h>
 4 #include <sys/types.h>
 5 #include <stdio.h>
 6 #include <fcntl.h>
 7
 8 int main(int argc, char **argv, char **envp)
 9 {
10   char buf[1024];
11   int fd, rc;
12
13   if(argc == 1) {
14       printf("%s [file to read]\n", argv[0]);
15       exit(EXIT_FAILURE);
16   }
17
18   if(strstr(argv[1], "token") != NULL) {
19       printf("You may not access '%s'\n", argv[1]);
20       exit(EXIT_FAILURE);
21   }
22
23   fd = open(argv[1], O_RDONLY);
24   if(fd == -1) {
25       err(EXIT_FAILURE, "Unable to open %s", argv[1]);
26   }
27
28   rc = read(fd, buf, sizeof(buf));
29
30   if(rc == -1) {
31       err(EXIT_FAILURE, "Unable to read fd %d", fd);
32   }
33
34   write(1, buf, rc);
35 }

具体是将某个文件读出,但是路径以及文件名里不能包含token关键词。

解法(参考网上):在/tmp目录下创建token文件的软连接,然后读取这个软连接的内容就是这个token文件的内容。

ln -s target_filename symlink_filename将上述命令中的target_filename用符号链接将要指向的相对路径或者绝对路径进行替换。在通常的情况下,目标文件应该存在。但是也可以创建一个指向不存在目标的符号链接。将symlink_filename用希望的符号链接名替换。这条ln命令将会创建一条符号链接。当创建完符号链接之后,可以将symlink_filename当作target_filename的别名看待。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。

转载于:https://www.cnblogs.com/iamgroot/p/9357184.html

Nebula Challenge 04相关推荐

  1. python趣味编程从入门到人工智能答案-趣味编程挑战:从Python入门到AI应用

    商品详情 书名:趣味编程挑战:从Python入门到AI应用 定价:69.0 ISBN:9787121363177 作者:孙勇 版次:第1版 出版时间:2020-04 内容提要: 本书是趣味编程的入门教 ...

  2. 有趣的Hack-A-Sat黑掉卫星挑战赛——跟踪卫星

    国家太空安全是国家安全在空间领域的表现.随着太空技术在政治.经济.军事.文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1].而 ...

  3. CAMoE——屠榜 video retrieval challenge

    关注公众号,发现CV技术之美 作者:炎思提 原文:https://zhuanlan.zhihu.com/p/425226244 本文转自知乎,已获作者授权,请勿二次转载. ✎ 编 者 言  来自今年九 ...

  4. ACM MM2021 | 快手获得Grand Challenge第一名

    近日,多媒体领域国际顶级会议ACM Multimedia 2021在中国成都举办.在会议的Grand Challenge环节,快手音视频网络传输算法团队(Kwai2021)获得了ACM MM Gran ...

  5. Nebula Graph 招募社区布道师

    点击上方"开源社"关注我们 | 编辑:钱英宇.李明康 | 设计:王福政 01 Nebula Graph 社区布道师 作为一款开源的数据库产品,社区对 Nebula Graph 团队 ...

  6. 如何在Ubuntu 20.04上设置和配置证书颁发机构(CA)

    介绍 (Introduction) A Certificate Authority (CA) is an entity responsible for issuing digital certific ...

  7. 有趣的Python Challenge编程解谜游戏攻略二(5-9关)

    **有趣的Python Challenge编程解谜游戏攻略二(5-9关)** 介绍 游戏介绍 0-4关攻略 写在前面 关卡 第5关 第6关 第7关 第8关 第9关 链接总结 第10关预告 介绍 游戏介 ...

  8. CodeLab:Android fundamentals 04.2:Input controls

    Android fundamentals 04.2:Input controls Tutorial source : Google CodeLab Date : 2021/04/06 Complete ...

  9. Nebula Graph 的 KV 存储分离原理和性能测评

    本文首发于 Nebula Graph Community 公众号 1. 概述 过去十年,图计算无论在学术界还是工业界热度持续升高.相伴而来的是,全世界的数据正以几何级数形式增长.在这种情况下,对于数据 ...

最新文章

  1. C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
  2. Lock 与 InterruptedException
  3. python画椭圆turtle_如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践...
  4. html3d上下翻转4面效果,花式实现图片3D翻转效果
  5. Python 装饰器详解(下)
  6. python调用numpy视频_Numpy的文件输入和输出使用
  7. java 8009_[转]Tomcat的8009端口AJP的利用
  8. python中几个常用的算术函数
  9. LinkedHashMap jdk1.8源码解析
  10. 计算机指针知识,指针_计算机基础知识142页.ppt
  11. 公共管理和社会保障、旅游1994-2019年省级面板数据数据
  12. 智遥工作流调用SAP基础数据,解决方案
  13. 上海黄金交易所交易操作基本知识
  14. 身份证的行政区划代码
  15. gfortran在linux下安装
  16. requests中get请求没有referer得不到数据
  17. 将uc/OS-III移植到stm32F103上并创建多任务
  18. android 手电筒闪烁,如何实现Android Studio简易手电筒的闪烁和报警功能
  19. 【线性代数04】投影矩阵P和标准正交矩阵Q
  20. 中国铁路警方查处多名违规在动车高铁列车上抽烟人员

热门文章

  1. 信号回勾产生的原因_为什么照片放大会有噪点?产生噪点的4个因素,来了解一下...
  2. R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)
  3. java kotlin相互调用_Kotlin的互操作——Kotlin与Java互相调用
  4. “创业吃过饼,国企养过老” 架构师的头发不是一天掉完的!
  5. 混合云备份服务 > 产品简介 > 什么是混合云备份
  6. 有关 vSphere 6.X 的证书及升级问题 (转)-影响等级(重要)
  7. office选项-》高级-》显示 中, 显示此数目的“最近使用的文档” 为灰色,无法更改
  8. Redis学习总结(23)——Redis集群化方案对比:Codis、Twemproxy、Redis Cluster
  9. Git学习总结(23)——Git commit message和版本管理规范总结
  10. Jenkins学习总结(7)——搭建Jenkins+Maven+SVN+Tomcat持续集成环境