2020/2/1 PHP代码审计之任意文件读取及删除漏洞
在开始学习之前先简单记录一下自己现在的思路吧。。现在接触的基本都是无防护的漏洞也就是最简单的一些漏洞。我的想法就是以代审思路为主,之前一直在打CTF,白盒的思维我觉得和CTF这种黑盒有很大区别。自己的思考方式应该在某处转变。
在实际中,真正的业务也是基于这种最简单的功能,无非是给他穿了很多层衣服,而我们在审计时要做的就是去掉他的保护,脱掉他的衣服。
0x00 任意文件读取
通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不合格,用户可以控制这个变量读取任意文件。
思路可以参考前面的文件包含,目录穿越等文件操作,区别就是我们使用的函数不同,要学会举一反三嘛。
0x01 文件读取-漏洞危害
任意文件读取漏洞,是Web安全里高位的漏洞,它可以泄露源码,数据库配置文件等等,导致网站处于极度不安全的状态。
漏洞验证:
Index.php?f=../../../../../../../../etc/passwd Index.php?f=../index.php
Index.php?f=file:///etc/passwd
参数f的参数值为PHP文件时:
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件查看漏洞
3.提示下载,则是文件下载漏洞
0x02 文件读取挖掘经验
fopen()
file_get_contents()
fread
fgets
fgetss
file
fpassthru
parse_ini_file
readfile
allow_url_fopen选项激活了URL形式的fopen封装协议使得可以访问URL对象例如文件。默认的封装协议提供用ftp和http协议来访问远程文件,一些扩展库例如zlib可能会注册更多的封装协议。
0x03 文件读取代码
<?php
$filename = $_GET['file'];
if(isset($filename)){
readfile($filename);
}
?>
<?php
$filename=”test.txt”;
Echo fiile_get_contents($filename);
?>

漏洞之所以会发生是因为攻击者可以将路径遍历序列放入文件夹内,从当前位置向上回溯,从而浏览整个浏览器的任何文件。
0x04 任意文件删除
攻击者从寻找删除的功能,正常删除功能的文件没有经过校验或者不严格,攻击者控制这个可操作的变量配合目录遍历进行删除其他文件。
0x05 代码
unlink()函数
<?php
header(string "Content-type:text/html;charset=utf-8");
$filename = $_GET['file'];
if(file_exists($filename)){
unlink($filename);
echo "<script>alert("删除成功")</script>";
}else{
echo "<script>alert("删除失败")</script>";
}
?>
上述没有任何防护,我们可以删除任意敏感文件
例如:
./config/admin.php
0x06 修复方案
过滤 . 点,使用户在url中不能回溯上级目录
正则严格判断用户输入的参数
php.ini配置open_basedir限定文件访问范围
2020/2/1 PHP代码审计之任意文件读取及删除漏洞的更多相关文章
- 代码审计-phpcms9任意文件读取
漏洞文件: /phpcms/modules/content/down.php download函数 这个函数开始几行代码的作用和init函数中的几乎一样,都是从parse_str 解析传入的a_k参数 ...
- 24.Windows任意文件读取漏洞
漏洞概述: 近日,国外安全研究员SandboxEscaper又一次在推特上公布了新的Windows 0 day漏洞细节及PoC.这是2018年8月开始该研究员公布的第三个windows 0 day漏洞 ...
- 禅知Pro 1.6 前台任意文件读取 | 代码审计
禅知 Pro v1.6 前台任意文件读取 | 代码审计 蝉知专业版是基于蝉知企业门户系统开源版开发,继承了蝉知本身的优秀功能.相对于蝉知开源版增强了商品的属性自定义.属性价格定制.物流跟踪.微信支付. ...
- 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】XYHCMS V3.5任意文件读取漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 代码审计-MetInfo CMS任意文件读取漏洞
0x01 代码分析 发现在app\system\include\module\old_thumb.class.php疑似有任意文件读取漏洞 public function doshow(){ glob ...
- 【漏洞复现】ThinkAdmin v5和v6 未授权列目录任意文件读取(CVE-2020-25540)
ThinkAdmin v5和v6 未授权列目录/任意文件读取(CVE-2020-25540) 漏洞简介 ThinkAdmin是一套基于ThinkPHP框架的通用后台管理系统.ThinkAdmin v6 ...
- 应用服务器Glassfish任意文件读取漏洞
catalogue . 前言和技术背景 . Glassfish安装配置 . 漏洞利用 . 漏洞缓解(修复) 1. 前言和技术背景 0x1: GlassFish是什么 GlassFish 是用于构建 J ...
随机推荐
- Zabbix WebUI 配置监控Zabbix Agent
Zabbix WebUI 配置监控Zabbix Agent 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署zabbix服务 1>.部署zabbix server 和z ...
- pta 拯救007(Floyd)
7-9 拯救007(25 分) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里 ...
- Java常考面试题(二)(转)
序言 昨天刚开始的"每日5题面试"这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看 ...
- vue table已选列数据
vue Table@on-selection-change="test" 已选中项数据 test(selection){} <Table :data="tableD ...
- spring#事件发布订阅
1. 如果在应用中发生了某些事件,事件会被拦截和处理就好了,这样就有了很大的灵活性,至少代码不会紧密的耦合在一起, 代码的解耦就是业务的解耦,业务A的代码不用手动的调用业务B的代码,业务B只需要监听相 ...
- [Codeforces #608 div2]1272B Blocks
Description There are nnn blocks arranged in a row and numbered from left to right, starting from on ...
- Day6 - H - Balanced Lineup POJ - 3264
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One d ...
- /etc/fstab 只读无法修改的解决办法
在做saltstack的时候不小心误把/etc/fstab给注释了 在命令补全的时候开始报错:[root@kafka2 ~]# cat /et-bash: cannot create temp fil ...
- 盘姬工具箱WV1.10
========================================================================== {盘姬工具箱CruiserEXPforWin版是一 ...
- python学习笔记2018-9-17
1.print("{0:^30}\n{1:^30}\n{1:10}".format("age","name")) {0:^30}中的0是一个 ...