PHP代码审计笔记

Wesley13
• 阅读 334

0x01 最简单的文件上传

未进行文件类型和格式做合法性校验,任意文件上传

漏洞代码示例:

新建一个提供上传文件的 upload.html

<html>

创建上传脚本  upload_file.php

<?php

漏洞利用:可上传任意文件

PHP代码审计笔记

这是一种非常简单文件上传方式。

基于安全方面的考虑,应增加用户上传文件的限制,比如检查文件类型、限制文件大小,限定文件路径,文件名重命名、白名单限制文件上传类型等。

0x02  upload-labs

推荐一个很不错的项目,提供了各种上传漏洞的靶场,可以从upload-labs总结上传漏洞及其绕过的技巧。

GitHub项目地址:https://github.com/c0ny1/upload-labs

Pass-01

本文分享自微信公众号 - Bypass(Bypass--)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
李志宽 李志宽
1年前
【小白必学】文件上传的漏洞介绍及常见防御方法
01文件上传漏洞原理在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。02文件上传漏洞触发点相册、头像上传、视频、照片分享、附件上传(论坛发帖、邮箱
Wesley13 Wesley13
2年前
uploadify,swfupload等flash上传session丢失问题,无法接收到表单
大部分网站的上传文件功能都要求用户登陆,而判断用户登陆状态一般是用session标记。现在流行flash上传插件,优点是显示每个文件上传的进度条,可中途取消,暂停等等。然而用flash上传插件有个问题,那就是上传的时候flash会丢失session,服务端会以为是游客而拒绝处理。解决办法是有的,下面慢慢道来:我们知道,php里启用sessio
Wesley13 Wesley13
2年前
NGINX 文件类型解释漏洞整理
nginx文件类型错误解析漏洞www.xxx.com/1.jpg内容为PHP代码,如<?phpphpinfo();?后面加任意.phpwww.xxx.com/1.jpg/xxx.php导致代码被执行php.inicgi.fix\_pathinfo1PHP\_INI\_ALL
Stella981 Stella981
2年前
Apache禁止解析PHP、禁止指定user_agent、php配置文件
Apache禁止解析PHP某个目录禁止解析PHP,是很有用的。特别是能够上传文件的目录。做网站安全的时候,这用的很多,比如某个目录可以上传文件,为了防止上传的文件有木马,所以我们禁止这个目录下面的访问解析PHP禁止解析PHP修改虚拟主机配置文件vim/usr/local/apache2/conf/ext
Wesley13 Wesley13
2年前
PHP实现图片(文件)上传
这几天整理做过的php项目,感觉这个经常会用到,传上来共享一下咯首先,前端界面1、表单的首行需要加上enctype"multipart/formdata",需要上传的图片必须设置type"file"表示选择文件<formid"img_form"method"post"class"formhorizontal"r
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
2年前
FastDFS提供的API简介
 FastDFS提供的API及简要说明如下:  upload:上传普通文件,包括主文件  upload\_appender:上传appender类型文件,后续可以对其进行append、modify和truncate操作  upload\_slave:上传从文件  download:下载文件  delete:删除文件
Wesley13 Wesley13
2年前
JS 异步分段上传文件
为了解决大文件上传(PHP上传最大限制2GB)同时为了解决文件上传是对服务器造成的压力可以通过分段上传解决这个问题,这得益于HTML5开发的fileAPI前台代码:引用了进度条插件myProgress.js<linkhref"__PUBLIC__/admin/css/myProgress.css"rel"stylesh
Wesley13 Wesley13
2年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。