Elie大表哥->渗透小技巧:
环境: 系统:linux 语言:php web容器:任意(例如:apache) 数据库:MYSQL
条件: php网址存在注入, mysql root权限, php显错模式关闭
假想: 看到这样的环境, 我们会立马想到获取绝对路径,然后利用爆WEB网站绝对路径,向WEB目录写 入一句话
问题: 前提条件已经说了,php显错模式关闭了,所以我们通过暴路径获取web网站绝对路径,基本不太可能了,我们如何获取WEB网站绝对路径呢?
利用:每一个WEB容器都有自己的配置文件,可以通过root权限的mysql load_file读取配置文件,找到WEB网站的绝对路径。这样我们就可以尝试写入webshell到web目录
问题1:root权限的mysql禁用了load_file函数利用:死路一条,老老实实通过sql注入,获取管理账号密码,找后台,看看有没有办法getshell
问题2:root权限的mysql禁用了into outfile函数利用:按照优先级 1.老老实实通过sql注入,获取管理账号密码,找后台,看看有没有办法getshell 2.读配置文件,找到其他在服务器的旁站,通过旁站Getshell 3.读取WEB网站绝对路径,再读web文件,代码审计吧;
条件:root权限的mysql没有禁用load_file 和into outfile
问题:通过load_file可以读到web文件,但是into outfile写不入文件,大部分原因是因为文件权限问题,mysql不具备WEB网站目录写文件权限
利用:只要这个网站存在上传文件(文件,头像,附件)的功能,那么上传文件的这个目录最低具备0706权限,我们的mysql 就可以通过into outfile 把webshell写入到这个目录下面。
总结:渗透中碰到的问题,因为权限不能写入文件,找到一个可写目录非常重要
技巧1中,可能会问如何找配置文件,猜的运气成分太大,其实是有技巧的。很少有人知道。这里说下吧.
环境: 系统:linux web容器:任意(例如:apache)
条件:你能读取服务器上的文件,(例如:php任意文件包含,php任意文件读取漏洞,root权限的注入点)
问题:如何找WEB服务器绝对路径呢?
利用:首先说下web服务器是如何启动的,99%的web服务器开机启动都是利用服务,都会在/etc/init.d/xxxx,有一个启动文件。我们可以读取这个文件,获取web服务器的配置文件。例如apache,就是/etc/init.d/httpd nginx,就是/etc/init.d/nginx,web服务器启动需要初始化,还要制定配置文件路径,所以这个文件里面99%包含配置文件路径。不包含就是说明默认配置路径。
总结:屡试不爽