日志包含Getshell
日志包含Getshell
题目来自CTFSHOW WEB81
简介
如果网站存在文件包含漏洞,我们可以尝试包含中间件等的日志来帮助我们getshell
日志位置
既然要包含日志,那么就必须知道一些默认的日志存放路径
系统 | 服务器 | 可能的错误日志的位置 |
---|---|---|
windows | apache | ./Apache/logs/error.log |
windows | nginx | ./nginx/logs/error.log |
linux | apache | /var/log/apache2/error.log |
linux | apache | /var/log/httpd/error.log |
linux | apache | /etc/httpd/logs/error.log |
linux | nginx | /var/log/nginx |
web中间件默认配置
通过读取这些默认配置来获取中间件的位置
apache+linux 默认配置文件
/etc/httpd/conf/httpd.conf
或者
/etc/init.d/httpd
IIS6.0+win2003 配置文件
C:/Windows/system32/inetsrv/metabase.xml
IIS7.0+WIN 配置文件
C:\Windows\System32\inetsrv\config\applicationHost.config
利用
日志包含的原理
那么现在我们知道这些日志路径以后,该怎么利用呢?
首先,我们来看一下日志记录了些什么东西?
可以看到,他记录了包括:IP地址、访问的url、状态码、UA等等。于是我们可以修改里面的部分东西,让他记录上我们的恶意代码
,这样的话我们再文件包含他就可以实现Getshell了。
我们来看看具体利用
利用过程
这里我准备在UA中插入恶意代码
来实现Getshell,Burp抓包,修改UA:
<?php system('ls');?>
第二步,包含日志
可以看到已经执行了命令。