.git源码泄露&assert使用(mfw 攻防世界)

2022_11_17

攻防世界

知识点

.git源码泄露

assert的使用

大概的解题步骤

1.点到About发现运用git

2.想到.git源码泄露,访问/.git,看是否泄露

3.用工具githack下载源码

命令:python GitHack.py http://61.147.171.105:56883/.git/

4.查找源码中有用信息

flag.php文件中flag为空,其他文件也没有价值,除了index.php

发现有个assert函数

assert()函数其实是一个断言函数。

assert:

  这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;

        assert ( mixed $assertion [, string $description ] ) : bool

  如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。

strpos() 函数查找字符串在另一字符串中第一次出现的位置,如果没有找到则返回flase,

5.payload

?page=abc') or system("cat templates/flag.php");//

因为在strpos中只传入了abc,所以其肯定返回false,在利用or让其执行system函数,再用" // "将后面的语句注释掉

/?page=').system('cat+./templates/flag.php');//
查看源码得到flag

重点

  • .git文件泄露:当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了

  • assert断言的使用:还不太明白

    assert:
    
      这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;
    
            assert ( mixed $assertion [, string $description ] ) : bool
    
      如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
    

参考资料:

源码泄露:
https://lddp.github.io/2018/05/10/WEB-源码泄漏/

工具:
https://github.com/lijiejie/GitHack

php assert:
你所不知的 PHP 断言(assert) - Jioby - 博客园

wp:
攻防世界-Web-mfw - 简书

攻防世界-mfw-(详细操作)做题笔记_角一角的博客-CSDN博客

posted @ 2022-11-17 17:48  konglong  阅读(29)  评论(0)    收藏  举报