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


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

面试题 相关文章推荐
int *p=NULL和*p= NULL有什么区别
Oct 23 面试题
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
Mar 19 面试题
C/C++ 笔试、面试题目大汇总
Nov 21 面试题
索引覆盖(Index Covering)查询含义
Feb 18 面试题
西部世纪.net笔试题面试题
Apr 03 面试题
亿阳信通股份有限公司笔试题(C#)
Mar 04 面试题
关于.NET, HTML的五个问题
Aug 29 面试题
标记环介质访问控制协议
Mar 27 面试题
P/Invoke是什么
Jul 31 面试题
介绍一下Linux中的链接
Jun 05 面试题
介绍一下JMS编程步骤
Sep 22 面试题
JavaScript获取当前url根目录(路径)
Feb 19 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
利用python实现数据分析
2017/01/11 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
python如何对链表操作
2020/10/10 Python
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
应届生幼儿园求职信
2013/11/12 职场文书
求职信范文怎么写
2014/01/29 职场文书
优秀家长事迹材料
2014/05/17 职场文书
工会主席事迹材料
2014/06/03 职场文书
安全教育主题班会教案
2015/08/12 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
django中websocket的具体使用
2022/01/22 Python
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers