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


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...

面试题 相关文章推荐
几道PHP的面试题
May 19 面试题
Java工程师面试集锦之Spring框架
Jun 16 面试题
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
Aug 15 面试题
Android interview questions
Dec 25 面试题
广州地球村科技数据库题目
Apr 25 面试题
Sql面试题
Mar 20 面试题
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
May 29 面试题
.NET现在共支持多少种语言
Feb 26 面试题
linux面试题参考答案(8)
Apr 19 面试题
Linux如何为某个操作添加别名
Mar 01 面试题
方正Java笔试题
Jul 03 面试题
解释下面关于J2EE的名词
Nov 15 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
javascript分页代码(当前页码居中)
2012/09/20 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
好的演讲稿开场白
2013/12/30 职场文书
五年级数学教学反思
2014/02/11 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
工程质量承诺书
2014/03/27 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
财务会计实训报告
2014/11/05 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
工作简报怎么写
2015/07/21 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏