当前位置: 首页 > news >正文

web第一周任务

一.搭建一个站点并写出一个Hello World网页页面

1.打开phpstudy,在首页开启Apachec2.4.39,MySQL5.7.26

2.点击网站,创建新网站,输入域名为www.demo.com,点击确定,就创建成功了

3.点击站点管理,打开根目录,在根目录中创建一个新的文本文档,命名为index.php

4.右击打开方式中选择vscode打开,输入代码

<?php

echo"Hello World!";

?>

5.保存文档时,选择另存为.php

6.保存完成后,打开phpstudy,点击站点中的打开网站,刷新后就有Hello World新页面

二.文件上传漏洞

文件上传漏洞是Web安全中高频高危漏洞,核心是攻击者利用网站文件上传功能,上传恶意文件(如木马、后门脚本)并执行,进而控制服务器或窃取数据。

1.漏洞核心原理

网站未对上传文件进行严格校验(或校验逻辑可被绕过),导致攻击者上传的恶意文件被服务器接收并执行,关键触发条件:

(1) 服务器允许上传文件(如头像、附件、文档功能);
(2) 未校验文件类型、后缀、内容或权限;
(3) 上传文件的存储路径可预测(如固定 /upload/ 目录);
(4) 服务器支持上传文件的脚本解析(如PHP、ASP、JSP环境)。

2.常见攻击方法

(1)后缀名绕过

核心:利用服务器/脚本解析规则差异,修改恶意文件后缀(如 shell.php改为shell.php.jpg 、 shell.pHp );
典型场景:服务器仅校验后缀名大小写、黑名单不全(遗漏 .php5 .phtml 等后缀)。

(2)MIME类型绕过

核心:篡改HTTP请求头中 Content-Type 字段(如将PHP文件的 application/x-httpd-php 改为 image/jpeg ),欺骗服务器的类型校验。

(3)内容伪装绕过

核心:在恶意脚本前添加合法文件头(如图片文件的 GIF89a 标识),使服务器误认为是图片/文档,上传后通过路径访问执行脚本

(4)路径穿越绕过

核心:上传时构造文件名(如 ../../shell.php ),突破服务器指定的存储目录,将恶意文件写入网站根目录(可直接访问执行)。

(5)服务器解析漏洞利用

核心:利用服务器配置缺陷(如Apache的 AddHandler 配置错误、Nginx的 php_admin_value 不当),使非脚本后缀文件被当作脚本解析(如 shell.jpg 被解析为PHP)。

(6)大小写绕过

3.漏洞危害

(1) 网站篡改:上传恶意HTML文件,替换网站首页(挂黑产广告、钓鱼页面);
(2)服务器入侵:通过木马脚本执行系统命令(如 whoami ls ),窃取服务器文件、数据库账号;
(3) 内网横向渗透:控制服务器后,作为跳板攻击内网其他主机;
(4)数据泄露:窃取网站用户数据(账号密码、个人信息),用于黑产交易。

4.防御方案(核心:多重校验+最小权限)

(1)前端校验(作为辅助)

限制文件后缀白名单(仅允许 .jpg .png .doc 等必要格式);
校验文件大小(防止超大文件DoS攻击)。

(2)后端校验(核心,严格执行)

后缀名校验:用白名单替代黑名单(仅允许指定后缀),拒绝所有可疑后缀(如 .php .asp .jsp 及变种);
文件类型校验:不依赖 Content-Type ,直接读取文件二进制头(如图片文件头 FFD8FF 89504E47 );
内容校验:对上传文件进行解析(如图片用GD库重绘、文档用第三方库校验),剔除恶意代码;
文件名处理:随机生成文件名(如 uuid+后缀 ),避免路径穿越和文件名猜测。

(3)服务器配置(关键,阻断执行)

上传目录独立存放,禁止脚本解析(如Apache配置 php_flag engine off ,Nginx禁止上传目录执行PHP);
限制上传目录权限:仅授予「读/写」权限,禁止「执行」权限(对应Linux 644 权限,而非 755 );
禁用危险函数:PHP环境通过 php.ini 禁用 exec system eval 等命令执行函数;

部署WAF:通过Web应用防火墙(如阿里云WAF、ModSecurity)拦截恶意上传请求。

(4)运维监控

日志审计:记录所有文件上传操作(上传者IP、文件名、路径),定期排查异常;
实时监控:监控上传目录文件变化,发现可疑脚本立即告警。

三.upload靶场1--12题解题过程

打开phpstudy,启动Apache服务,打开浏览器输入http://127.0.0.1/upload-lads-master(与所建文件夹名字一致),就进入了靶场页面

1.pass-01

首先写一个一句话木马php文件,上传到服务器

木马内容是<?php

@eval($_POST['1'])

?>

直接上传被拦截,有一个弹窗

想办法绕过拦截,直接上传,所以禁用了Javascript

不允许之后,就上传成功了

2.pass-02

先随便上传一个php文件,显示文件类型不正确


使用burpsuite抓包看一下,看到文件类型为application/octet-stream

既然显示上传文件类型不对,那么后端大概率检测的是上传文件的文件类型,那么我们抓包这块把文件类型改为png的文件类型,image/png

点击放行,就成功了

观察源代码,发现$_FILES['upload_file']['type']由客户端请求头的Content-Type决定,抓包后把php文件的content-type改为三种中的一种,即可上传,绕过检验

然后新建标签页打开图像,测试能不能链接蚁剑

点开就可以查看或者修改文件

3.pass-03

直接上传PHP文件,提示不允许上传.asp,.aspx,.php,.jsp后缀文件

需要我们绕过它,并让服务器能解析我们上传的文件

上传一个php文件,然后用burpsuite抓包,修改后缀名为php3,放行后上传成功

但是我用蚁剑连接时,显示返回数据为空,找不到原因


4.pass-04

继续试一下PHP文件上传,不成功

这时创建一个.htaccess文件写上内容Sethandler application/x-httpd-php进行上传

上传成功,再将一句话木马上传,同样上传成功

5.pass-05

这一关我们用.use.ini绕过,先用cmd打开终端,把一句话木马和一张图片合成一个新文件

新建一个.use.ini后缀的文件,输入auto_prepend_file=1.jpg,上传该文件,再把php文件上传

连接蚁剑时,我的数据返回为空

6.pass-06

抓包修改为PHP,放行即可

7.pass-07

空格绕过,抓包后再后面加几个空格

8.pass-08

源码缺少去除文件名后面的点,所以用后缀加点绕过

同样上传一个php文件后抓包,后缀加点,放行

复制图片链接,用蚁剑连接成功

9.pass-09

发现这一关比别的少了字符串::$DATA的限制

继续抓包,在文件后缀加一个::$DATA

然后放行,上传成功,用新链接打开图片,发现了403错误

去掉::$DATA字符串,然后复制路径,用蚁剑连接成功

10.pass-10

这一关限制条件都在,所以我们选择在后缀名加. .

依旧抓包修改后缀名

上传成功,用蚁剑连接成功

11.pass-11

这一关出现了新函数,会把黑名单里的后缀替换成空白,但只执行一次

所以我们抓包改后缀名为.pphphp,这样遇到php变空白后,后缀名依旧是php

上传后,用蚁剑连接成功

12.pass-12

查看代码发现前面的方法都不行了,可以试试%00截断

上传jpg的文件,抓包,在上面upload后面加2.php%00

上传后新链接打开图像后,发现找不到,把php后面的内容都删了。就恢复正常

然后连接蚁剑成功

http://www.jsqmd.com/news/459712/

相关文章:

  • 图漾相机Vcamera Python语言---(4.X.X)版本文档(待完善版本)
  • Nunchaku-FLUX.1-dev开源模型部署实录:CentOS7+RTX4090D环境搭建全过程
  • Linuxbrew vs 系统包管理器:为什么选择Linuxbrew管理Unix工具?
  • 探索IKEA VINDRIKTNING内部结构:传感器通信协议与硬件接口详解
  • Qwen3-14B快速入门:三步在Ollama运行14B大模型
  • Nanbeige 4.1-3B Streamlit UI多场景落地:内容创作/学习辅助/角色扮演
  • 解决RSpec-Core常见问题:测试新手到专家的进阶之路
  • Python3.9镜像部署教程:Miniconda环境快速搭建实战指南
  • 为什么选择ENSwiftSideMenu?轻量级iOS侧边菜单组件深度评测
  • CLIP-GmP-ViT-L-14图文匹配工具实战教程:支持负样本输入与区分度量化分析
  • 为什么选择RunWASI?轻量级容器化运行时的7大核心优势
  • terraform-google-kubernetes-engine模块解析:构建可复用的GKE配置
  • Linuxbrew (Legacy) 公式开发入门:10 个实用技巧快速上手
  • replace-jquery高级技巧:自定义生成指定jQuery方法的原生实现
  • 匿名代码块与静态代码块
  • Angular UI Tree实战案例:构建可折叠的文件目录浏览器
  • CLIP-GmP-ViT-L-14图文匹配工具部署教程:Kubernetes单节点轻量集群部署方案
  • OpenClaw安全吗?斯坦福哈佛最新发文—混乱智能体:AI自主智能体的安全漏洞实证研究
  • AI赋能测试
  • 10分钟上手RDVTabBarController:iOS新手的快速集成指南
  • VaLiK:无需标注的多模态知识图谱构建,提升大模型推理能力
  • 2026年3月成都租车公司综合对比与推荐榜:五家服务商深度评测与选择指南 - 品牌推荐
  • PAT 乙级 1018
  • Guard::LiveReload高级技巧:自定义配置实现个性化开发流程
  • 宁波鸿雁包装材料有限公司电话查询:业务咨询方式与注意事项 - 品牌推荐
  • linphone-android与其他SIP客户端对比:为什么它是开源通信的最佳选择
  • Youtu-Parsing政务决策支持:政策文件要点自动提炼+影响范围结构化
  • GPT-OSS:20b代码生成实战:编程助手系统搭建教程
  • 2026年3月成都租车公司综合对比与推荐排行榜:五大服务商深度评测与选择指南 - 品牌推荐
  • Chimney与Cats集成:函数式数据转换的终极方案