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


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错误
Oct 14 面试题
介绍一下Java的安全机制
Jun 28 面试题
关于Java String的一道面试题
Sep 29 面试题
C语言怎样定义和声明全局变量和函数最好
Nov 26 面试题
int *p=NULL和*p= NULL有什么区别
Oct 23 面试题
struct与class的区别
Feb 03 面试题
ASP.NET中的身份验证有那些
Jul 13 面试题
新大陆软件面试题
Nov 24 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
C#如何调用Word并打开一个Word文档
May 08 面试题
GWT都有什么特性
Dec 02 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php中计算时间差的几种方法
2009/12/31 PHP
php随机输出名人名言的代码
2012/10/07 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
python中xrange和range的区别
2014/05/13 Python
python先序遍历二叉树问题
2017/11/10 Python
python编写分类决策树的代码
2017/12/21 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python PO设计模式的具体使用
2019/08/16 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
Python帮你识破双11的套路
2019/11/11 Python
Python sys模块常用方法解析
2020/02/20 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
电子商务专业求职信
2014/03/08 职场文书
师德先进个人材料
2014/12/20 职场文书
2015年项目工作总结
2015/04/29 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
Python pandas之求和运算和非空值个数统计
2021/08/07 Python