Laravel 5 报错信息存在严重漏洞

2021-08-24 11:38:46 浏览数 (1)

0x00:简介

Laravel是一套简洁、优雅的PHPweb开发程序框架,并且具有简洁的表达,是一个比较容易理解且强大的,它提供了强大的工具用以开发大型网站的应用。

这么说吧,家人们 我又来了!

不求刷火箭

多转发我的文章就是给我最大的火箭!

0x01:过程

很多开发人员在测试网站服务的时候,一般会去安装Whoops样式错误处理器。方便开发人员边调试边查找错误的信息。

一般是在app/Exceptions/Handler.php, 在render()方法中添加一个Whoops样式的处理情况,像下面这样

代码语言:javascript复制
/**
     * Render an exception into an HTTP response.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  Exception  $e
     * @return IlluminateHttpResponse
     */
    public function render($request, Exception $e)
{
        if ($this->isHttpException($e))
        {
            return $this->renderHttpException($e);
        }
 
        if (config('app.debug'))
        {
            return $this->renderExceptionWithWhoops($e);
        }
 
        return parent::render($request, $e);
    }
 
    /**
     * Render an exception using Whoops.
     * 
     * @param  Exception $e
     * @return IlluminateHttpResponse
     */
    protected function renderExceptionWithWhoops(Exception $e)
{
        $whoops = new WhoopsRun;
        $whoops->pushHandler(new WhoopsHandlerPrettyPageHandler());
 
        return new IlluminateHttpResponse(
            $whoops->handleException($e),
            $e->getStatusCode(),
            $e->getHeaders()
        );
    }

使用Whoops错误库来显示WhoopsHandlerPrettyPageHandler()中

直接显示在前端就会导致任意访问者就能看到错误信息

如果报错信息存在敏感信息

恶意着就会进行下一步的利用

例如

老规矩

Navicat走起

来看看有多少铁憨憨

但是不排除蜜罐的情况

一键排除蜜罐

7000 ???

但不是每个Laravel开发都是铁憨憨

有得则是显示不算敏感的信息

有的则是

别问 为什么是127.0.0.1

问就是

爱过、保大、救我妈、我妈会游泳

0x02:修复建议

代码语言:javascript复制
$run->pushHandler(function($exception, $inspector, $run) {
    var_dump($exception->getMessage());
    return Handler::DONE;
});

替换var_dump($exception-> getMessage());使用自定义代码保存到数据库或文件日志中,从日志或者数据中来看报错信息

0 人点赞