我是靠谱客的博主 包容春天,最近开发中收集的这篇文章主要介绍HITCON 2017 babyfirst-revenge-v2(命令执行绕过五),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目地址:https://github.com/otakekumi/CTF-Challenge/blob/master/PHP/chall_2/index.php

发现和上一题大体相似,但是发现有一个不一样,长度从5变成了4,没办法利用>>二次写入了。

但是我们如果就这样是没法儿按照字典序直接写入ls -t>g到文件的。 因为这一串无论怎么分割写入都无法遵从字典序或是字典序的逆序。

然后就不会了,想了n久还是不会,最后只有去看wp了。

首先介绍几个命令:

dir:虽然基本上和 ls 一样,但有两个好处,一是开头字母是d ,这使得它在 alphabetical 序中靠前,二是按列输出,不换行。

* :相当于$(dir *),所以说如果文件名如果是命令的话就会返回执行的结果,之后的作为参数传入.

rev:可以反转文件每一行的内容。

所以这样如果dir在最前面的话,就可以把当前目录的文件都返回.

>dir
>sl
>g>
>ht-

之后将*的结果写入文件中,紧接着写入rev文件.

>*>v
>rev


最后执行rev v>u,这个命令需要通过*命令的其它形式实现.

*v>u
这个命令就是$(dir *v)>u,dir *v返回的就是结尾为v的文件.


这个地方其实是一个很巧妙的方式,因为*v恰好是可以匹配到revv的,如果文件名换成其它字母会因为排序错误或者没有作为rev的参数而逆序失败.
之后的步骤就没有什么多大的区别了.

基本上就前面的写文件操作不一样。

exp执行,getshell!

参考链接:https://xz.aliyun.com/t/1579

最后

以上就是包容春天为你收集整理的HITCON 2017 babyfirst-revenge-v2(命令执行绕过五)的全部内容,希望文章能够帮你解决HITCON 2017 babyfirst-revenge-v2(命令执行绕过五)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部