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


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

面试题 相关文章推荐
Yahoo-PHP面试题2
Dec 06 面试题
你常见到的runtime exception
Sep 05 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
Sony C++笔试题
Mar 10 面试题
解释一下Windows的消息机制
Jan 30 面试题
计算 s=(x*y)1/2,用两个宏定义来实现
Aug 11 面试题
铭万公司.net面试题笔试题
Jul 20 面试题
C#实现启动一个进程
Oct 01 面试题
Ajax和javascript的区别
Jul 20 面试题
不同浏览器创建XMLHttpRequest方法有什么不同
Nov 17 面试题
JAVA中运算符的分类及举例
Sep 12 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
Nov 27 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
用js实现in_array的方法
2013/11/05 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
python之Character string(实例讲解)
2017/09/25 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
客户表扬信范文
2014/01/10 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
信访工作经验交流材料
2014/05/23 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
入党申请书怎么写?
2019/06/21 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
css3 文字断裂效果
2022/04/22 HTML / CSS