目录遍历和敏感信息泄露原理及案例演示
目录遍历:
在我们的测试过程当中我们的关键点就是用…/…/这样的操作去进行目录跳转,从而来获取我们想要的文件。
点一下第一个
http: //127.0.0.1/pikachu/vul/dir/dir_list.php?title=jarheads.php
其实是传 一个文件名到后台,后台对这个文件进行读取,
我们来改一下,他本来是读取这个文件,我们让他读取其他文件看看可不可以,
http: //127.0.0.1/pikachu/vul/dir/dir_list.php?title=../../../../../../../../../../../../../../../../../etc/passwd
emmmm好吧我的不可以
看视频
读出了passwd的文件,这种情况叫做目录遍历,目录遍历也是前端传进去的文件或者路径到后端之后,后端没有进行严格的处理直接拼接到了路径里面,导致我们可以通过很多…/ 让后台去访问一些目标文件。
敏感信息泄露:
开发人员在写完代码之后应该把前端的注释信息去掉,如果把重要的注释信息写到了代码里面,有可能就会被前端的用户发现。
看下源代码
测试账号是写代码人员自己用的,但是没有把注释信息去掉,账号密码就泄露了出来。
前端的其他信息,比如cookie也可能导致信息泄露。
看一下
先登陆
看下cookie
cookie里面有密码字段,直接显示到了前端。
中间件配置导致的问题:
会把后端的目录结构直接列出来。
对敏感信息合理地处理:
屏蔽错误信息、返回标准的错误页面、对注释进行统一处理、做好对应的访问控制、企业内部的源代码(源代码可能包括链接数据库的链接地址、账号)。
不安全的url重定向原理和案例演示
演示
随便点一个
点他 改他的url地址
http: //127.0.0.1/pikachu/vul/urlredirect/urlredirect.php?url=http: //www.baidu.com
应该直接跳到百度页面的,但是我的又被拦截了
如果后面接一个自己写的恶意站点的url,然后把整个url发送给用户,用户点击之后就会跳转到恶意的url上去。
看下后台代码
通过get请求获取到了前端传进来的url,判断如果url=i 就会说p标签里面的内容,如果不等于i,就进行了恶意跳转。
我们在写代码的时候,后台一定要做重定向的设计,对url去做一个白名单的限制
。。