介绍一下如何利用路径遍历进行攻击及如何防范


Posted in 面试题 onJanuary 19, 2014
如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历

String rurl = request.getParameter(“rurl”);
BufferedWriter utput2 = new BufferedWriter(new FileWriter(new File(“/home/chenyz/”+rurl)));

攻击者可以将路径遍历序列放入文件名内,向上回溯,从而访问服务器上的任何文件,路径遍历序列叫“点-点-斜线”(..\)

http://***/go.action?file=..\..\etc\passwd

避开过滤
第一种是过滤文件名参数中是否存在任何路径遍历序列(..\)
如果程序尝试删除(..\)来净化用户输入,可以用
….// ….\/ …./\ ….\\
进行URL编码
点–>%2e 反斜杠–>%2f 正斜杠–>%5c
进行16为Unicode编码
点–>%u002e 反斜杠–>%u2215 正斜杠–>%u2216
进行双倍URL编码
点–>%252e 反斜杠–>%u252f 正斜杠–>%u255c
进行超长UTF-8 Unicode编码
点–>%c0%2e %e0$40%ae %c0ae
反斜杠–>%c0af %e0%80af %c0%af
正斜杠–>%c0%5c %c0%80%5c
预防路径遍历的方法:
1.对用户提交的文件名进行相关解码与规范化
2.程序使用一个硬编码,被允许访问的文件类型列表
3.使用getCanonicalPath方法检查访问的文件是否位于应用程序指定的起始位置

Tags in this post...

面试题 相关文章推荐
说出ArrayList,Vector, LinkedList的存储性能和特性
Jan 04 面试题
如何实现jdbc性能优化
Jul 30 面试题
求网格中的黑点分布
Nov 06 面试题
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
Sep 15 面试题
如何估计一张表的大小(假设该表中有1万条数据)
Mar 27 面试题
.net笔试题
Mar 03 面试题
PPP协议组成及简述协议协商的基本过程
May 28 面试题
Linux如何压缩可执行文件
Mar 27 面试题
什么是Linux虚拟文件系统VFS
Jan 31 面试题
Linux中如何用命令创建目录
Dec 02 面试题
如何写一个自定义标签
Dec 28 面试题
J2EE面试题集锦(附答案)
Aug 16 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php检测文件编码的方法示例
2014/04/25 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python 中的with关键字使用详解
2016/09/11 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
Python使用Pygame绘制时钟
2020/11/29 Python
医学生职业生涯规划书范文
2014/03/13 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS