
Vulnerabilidade XSS da última versão do YZMCMS v3.7 CVE-2018-8078
YZMCMS v3.7最新版xss漏洞
YZMCMS V3.7 XSS armazenado
这个xss存在于v3.7新增的广告管理模块,如图所示:
Este xss existe no novo módulo de gerenciamento de anúncios do v3.7, conforme mostrado na figura:

我们可以在YzmCMS-V3.7\application\advertisement\controller\adver.class.php第55-70行中找到广告管理编辑功能的具体代码,如图所示:
Podemos encontrar o código específico da função de edição do gerenciamento de anúncios em YzmCMS-V3.7\application\advertisement\controller\adver.class.php, linhas 55-70, conforme mostrado na figura:

其中,在第59行调用了一个名为getcode的方法,用POST方法传递了一组参数,我们继续跟进该方法,该方法返回一个$data[‘title’]没有进行任何的过滤,直接作为参数return到$POST_[‘code’]中,如图所示:
Entre elas, um método chamado getcode é chamado na linha 59, e um conjunto de parâmetros é passado usando o método POST; continuamos a acompanhar o método. Esse método retorna um $data['title'] sem nenhuma filtragem, retornando diretamente o parâmetro para $POST_['code'], como mostrado:

我们返回edit继续往下跟进,在edit方法中有include包含了一个名为adver_edit的文件如图所示:
Vamos voltar ao edit e continuar acompanhando. No método edit, há um include que inclui um arquivo chamado adver_edit, como mostrado na figura:

我们可以在YzmCMS-V3.7\application\advertisement\view该路径下找到该文件,可以看到至此,yzmcms并未对数据进行任何过滤,直接输出到页面中,如图所示:
Podemos encontrar o arquivo no caminho YzmCMS-V3.7\application\advertisement\view. Você pode ver que o yzmcms não filtra nenhum dado e o envia diretamente para a página, como mostrado na figura a seguir:

我们可以在后台管理界面找到该功能,如图所示:
Podemos encontrar essa função na interface de gerenciamento do backend, como mostrado na figura:

点击提交后我们可以用burp拦截该数据包,将title改为">,点击发送,如图所示:
Após o envio, podemos usar o burp para interceptar o pacote de dados e alterar o title para ">. Clique em Enviar, como mostrado:

我们返回广告管理界面,刷新,此时xss弹框可见,如图所示:
Voltamos à interface de gerenciamento de anúncios, atualizamos; neste momento, o pop-up de xss fica visível, como mostrado:
