pwn之fd

最近小伙伴发现了一个学习pwn的网站:http://www.pwnable.kr/。然后想着一块进行,把做过的都记

录下来。那么开始第一个吧!

pwn学习的游戏网站

               

1.点一下fd图片出现:

                 

观察ssh fd@pwnable.kr -p2222(pw:guest),是一条ssh命令。ssh是secure shell通常用于远程链接Linux服务器。

我们打开终端尝试链接服务器。其中fd是用户名,pwnable.kr是域名,这里可以替换为ip或者别名。-p 2222即为

端口。 guest为密码。

2.打开cmd终端,输入ssh fd@pwnable.kr -p 2222,并输入密码,登陆成功!如果使用ip登录,可以dig pwnable.kr,

将pwnable.kr替换为ip即可,其他不变

              

3.登录进来即为根目录(/home/fd),然后ls -alh 查看下所有文件。

            

分析一下最后三个文件权限:

   权限      文件拥有者 组

-r-sr-x---   1 fd_pwn    fd     7.2K Jun 11  2014 fd
-rw-r--r--   1 root        root   418 Jun 11  2014 fd.c
-r--r-----    1 fd_pwn   root   50 Jun 11  2014 flag

-r-sr-x---  其中第一个-表示文件,r-s r-x ---分别为用户fp_pwn,组fd,以及其他用户对该文件的权限。分析可知,fd即我们登陆的用户只是对fd.c拥有可读权限。我们对flag文件无任何权限,只能从fd.c下手。

这里要特别提一下权限s,s权限是指在执行该文件是,获取该文件拥有者(在这即为fd_pwn)的所有权限。后边要用到哦!

4.上边分析了只能从fd.c下手,我们先查看下fd.c 输入cat fd.c:

                         

5.分析下代码:

atio()函数是将字符串转换为数字,即将我们输入的数字处理为一下。

read(fp,buff,num)函数是将fp所指向的文件,读取num个字符,写到buf中。返回值为实际读取的字符数。如果fp为零,则在命令行读取。

strcmp(a,b),比较ab大小。如果a=b,返回值为0.

下面重点来了:

system("/bin/cat flag") 这个C文件会帮我们执行查看flag的命令。这里最关键的是当程序运行的时候,fd用户是可以获得fd_pwn的所有权限的,而fd_pwn 拥有对flag的r权限,这不正是我们需要的吗?

总结一下:

我们要让运行fd,使得可以查看flag文件。 分析代码可知,当我们输入的参数使 fd == 0 ,然后输入字符串LETMEWIN\n 即可。

6.终端输入:./fd 4660  然后输入LETMEWIN,回车:

 

7.然后将上边的mommy。。。输入到 flag框内,完成!!

补充:

我们可以将fd.c文件拷到我们本地,使用命令scp -P2222 fd@pwnable.kr:fd.c .

 

   


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值