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


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开发工程师面试问题集锦
Nov 01 面试题
局部内部类是否可以访问非final变量?
Apr 20 面试题
是否有自动比较结构的方法
Jun 03 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
Sep 16 面试题
结构和类有什么异同
Jul 16 面试题
.net C#面试题
Aug 28 面试题
Linux文件系统类型
Sep 16 面试题
介绍一下gcc特性
Jan 20 面试题
Linux面试题LINUX系统类
Nov 19 面试题
港湾网络笔试题
Apr 19 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
Ajax的优点和缺点
Nov 21 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP运行模式的深入理解
2013/06/03 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
javascript 打印页面代码
2009/03/24 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Python中的Django基本命令实例详解
2018/07/15 Python
20行python代码实现人脸识别
2019/05/05 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
大学校园毕业自我鉴定
2014/01/15 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
民族精神月活动总结
2014/08/28 职场文书
毕业赠语大全
2015/06/23 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs