WEB攻防-PHP-文件管理
关于文件还剩下一些小芝士,这期就来说一下
首先就来说说关于读取文件和下载文件的漏洞哈,我们在安全开发中就已经提过一次,如果没有控制好这个下载的话,可能他就直接可以下载一下敏感文件了,读取也是一样的,所以说,这两个其实最后的结果是相同的,都是敏感信息泄露
首先下载肯定会对应一个url,正常来说一般都是直接对应的,没有其他参数
比如说像这种,对应到目录下的文件名,没有其他参数,这是常规url
还有一种就是
像这种,url中带有参数,这种可以被我们控制的,那肯定危险哦
比如说这个网站
复制下这个下载链家
http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyNTA2MDUvbWd0dkRCRUlfNy4wLjYxMl9kYW5nYmVpLmFwaw==
发现长这样,可以看到就是一个s带着一个加密的值,这一看就知道是base64
解密一下就是这个样子,那不就跟我上面那个差不多嘛
一般常规url的话访问文件只能下载到他能接受的文件,而这种带参数的只要可控制,你想下什么文件他都能接受,所以说安全问题就出在这里,这里找了一个国外网站来实验
首先这个网站有这个问题,所以我们尝试来这样访问
然后当你点击之后,就可以看到这个文件就直接被下载了
可以看到他源代码,接受file参数来进行下载,所以说这时候你想下啥都可以了,我们首先尝试下载一个index文件
由于这个是在上一级,所以我们得../回到上级目录,然后我们查看一下这个文件
可以看到他是一个这个joomla的一个程序,这种时候我们就可以尝试在网上查看一下,关于这个程序的信息,搜索一下我们需要的信息,比如说找找他的数据库配置文件
搜索发现这个数据库配置文件就在根目录下,并且名字也知道了,所以我们也下载看看
这不就查看到敏感信息了吗,这就是文件下载带来的危害
然后还有关于文件读取,这里不多说,直接看靶场
来自bp靶场的一个简单的文件遍历的题目
当你访问一个图片的时候,会发现他这个路径是这样的,也是通过file来传递值,通过这个来加载图片,所以说要是我们把这个值替换一下,就可以访问别的敏感信息了
这样访问页面不能正常回显,我们直接抓包看看
然后就发现成功的访问了这个密码文件,这就是经典的读取文件呀,通过可控制的文件名来访问敏感文件,所以说,在我们黑盒测试中,需要关注的地方就是这些常见的参数,比如file,data,path 等等这种可控的参数名和带有download,这种明显的下载参数,一个一个测试就知道了
然后就是文件删除,这个其实和上面下载一样,也是通过可控制的参数名来删除文件,但是这个并不好测,不小心删了个文件,小心叔叔找你喝茶哈,拿个CMS来测试一下
在后台这里有个管理文件的地方,提供了编辑和删除的功能,我们抓包看一下这个删除的功能是怎么实现的
可以看到上面的地址有一个del参数,然后后面接上了文件名,既然这样的话,我们能不能尝试删除他其他的东西呢,尝试一下
然后他提示只能删除他指定目录下的文件,这里他有限制,那该怎么办呢,我们可以尝试绕过一下
既然他说只能这个目录下删除,那我就在这个目录下用../绕过上一级,然后就操作成功了
这个目录下的文件也确实不存在了,所以说这个删除是个非常危险的操作哈,一个不小心给网站搞崩了。就完蛋咯。其实也没啥好说的哈
接着说目录安全,我们知道当你需要访文件的时候,首先要将目录先遍历一般,然后就可以对文件进行操作,但是这个时候如果对目录权限控制不当,那么就可能会 出现目录遍历和目录穿越这种问题
还是拿刚才那个网站来说,我把主页文件删掉之后,他就会变成这样,因为他没有权限查看根目录下的文件权限,所以我们首先把他开启一下
然后就可以看到根目录下全部的文件,这是由于索引导致的,我们都知道网页默认显示的页面一般都叫index,如果不是的话就需要你手动指定默认页面,然后由于现在没有主页文件,然后你又打开了目录索引,他就会变成这样,所以说要是控制不当的话,不小心就泄露了其他文件,还是很危险的捏,这就是目录遍历漏洞
还有目录穿越,目录遍历准确来说还是针对文件的,这个目录穿越就针对的是目录了
比如说后台这个文件这里,他只能对这个模板文件下的文件进行操作,别的就不行了
但是我们前面是不是绕过了呢,所以这里同样的方法
普通的就会这样显示,但是要是加上这个目录再操作呢
你就发现他跳出去了哈,绕过了这个验证,这就是目录穿越,跑到别的不让你访问的目录了
再多翻两下直接是看到别的网站的信息了,这不就很严重了吗,直接是把服务器都日穿了,只不过这种一般都是出现在后台,虽然少见,但是还是有点用的哈,这个部分很容易被忽略,因为后台本来就难进哈
然后这期就差不多了,也没啥,很简单的
未完待续~~