CTFweb篇-Session包含

什么是Session

Session就是保存在服务器的文本文件。 默认情况下,PHP.ini 中设置的 SESSION 保存方式是 files(session.save_handler = files),即使用读写文件的方式保存 SESSION 数据,而 SESSION 文件保存的目录由 session.save_path 指定,文件名以 sess_ 为前缀,后跟 SESSION ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的 SESSION 数据了。

open_basedir

将用户可操作的文件限制在某目录下
是php.ini中的一个配置项
!!!DocumentRoot之会设置站点位置,而这个是设置可访问位置
打开了open_basedir后,include的跨文件文件包含是无效的。

cookie 中的 PHPSESSID

每一次SESSION会话都有一个SESSION ID,用来识别不同的会话,保存在浏览器Cookie之中,也就是这个名为PHPSESSID的Cookie(当然,这个名称是可以更改的)。
浏览器将Cookie(包括PHPSESSID)发送给服务器,PHP才知道应该使用哪一个SESSION传递给PHP程序。

关于robots

Robots.txt是一个小文本文件,位于网站的根目录中。它告诉抓取工具是否要抓取网站的某些部分。

常用指令

用户代理指令

user-agent指令用于指定哪个爬网程序应遵守给定的规则集。该指令可以是通配符,用于指定规则适用于所有爬网程序:
User-agent: *
或者它可以是特定爬虫的名称:
User-agent:Googlebot

禁止指令

Disallow:阻止指定路径
Disallow:/ junk-page
上面的示例将阻止路径以“/ junk-page”开头的所有URL 。

允许指令

Allow指令不是原始标准的一部分,但现在所有主要搜索引擎都支持它。
您可以使用此伪指令指定禁止规则的例外,例如,如果您有一个要阻止的子目录,但希望抓取该子目录中的一个页面:
User-agent:*
Allow:/ nothing-good-in-here / except-this-one-page
Disallow:/ nothing-good-in-here /

暂时先了解这么多吧

例题

CTFweb篇-Session包含
打开只是一个登录框,可能涉及到分析JS,SQL注入,题目提示可能是文件包含。
先随便注册登录一下
CTFweb篇-Session包含
发现没有flag
于是可以先用御剑扫一下,看有线索没得
CTFweb篇-Session包含
发现有个robots.txt,打开有个php1nFo.php,再次打开
进入了phpinfo
CTFweb篇-Session包含
因为涉及到session,可能有文件包含
CTFweb篇-Session包含
CTFweb篇-Session包含
发现这两个在不同目录,所以看session文件肯定是不可能了。
因为传参就可能有文件包含,而且
CTFweb篇-Session包含
题目中提示phpinfo有新发现,于是尝试从url分析一下
http://df6f6e55cf264702aa216a11eb639b994c60439ea392447b.changame.ichunqiu.com/action.php?module=php&file=login
file可能是文件名,module可能是后缀,随便改改参数看看
CTFweb篇-Session包含
这样改了也只提示错误,而且错误跟file的输入有关,module随便怎么改都是这样的,可能源码中有判断操作,再改一下fileCTFweb篇-Session包含
也不显示。
可能这就是文件包含。
于是把php1nFo.php带进file看看
进来了phpinfo,但是这个页面跟前面不同
CTFweb篇-Session包含
Session存在了/tmp/SESS
可以尝试读取SESSION文件
CTFweb篇-Session包含

用文件包含读取../../../tmp/SESS/sess_ttfa8g08kqosc0e7jemfa0i211
形成url:http://524e8ecaa12c4828ac01d0c679dbd2080be59dd1e83d4a54.changame.ichunqiu.com/action.php?module=&file=../../../tmp/SESS/sess_ttfa8g08kqosc0e7jemfa0i211
得到了session文件
CTFweb篇-Session包含
这里证明我们的文件写进去了,有两种方法
一、用菜刀链接
CTFweb篇-Session包含
发现flag
!!!如果一句话木马在tmp目录下,只能用tmp下的网页进行链接
二、用传参的方式进行
CTFweb篇-Session包含

总结

Session是一个可以利用的好手段,可以在里面写东西然后再进行攻击,还应该多考虑文件包含的内容,应用这种漏洞。