zoukankan      html  css  js  c++  java
  • 文件上传-1

    文件上传是什么?

    网络攻击者上传了一个可执行的文件到服务器并执行,这里上传的文件可以说木马,病毒,恶意脚本或者webshell等,这种攻击方式最为直接和有效的

    主要出现在哪?

    网站上上传图片,上传文件等的位置。

    文件上传的方式

    1.js验证绕过

    2.数据包中type绕过上传

    3.文件扩展名绕过上传

    4.等

    修改文件的content-type 修改文件的后缀名 (大小写) 改文件内容 等绕过方式

    如何找到上传的文件的路径?

      上传成功后查看源代码找到目标文件的src,如果没有只能另寻他法。

    实战 练习1:

    链接:http://lab1.xseclab.com/upload1_a4daf6890f1166fd88f386f098b182af/

    1.上传目标文件测试

     2.可以看到 关键词是 jpg 而且还有js验证,用bp抓包

    可以看得到 有js的验证 ,将 验证部分删掉 return true,让其不管在什么情况下都返回正确,

    3.点击forward 再点击提交

    4.点击forward 直到页面显示是否上传成功为止。

     当然这个题还有另一种方式:

      先将目标文件扩展名修改为符合所要上传文件条件的名,然后点击上传的同时用,bp抓包,找到filename这个选项,将后缀名改回php或者asp等的后缀名。也可以绕过js验证。

    实战2

    http://lab1.xseclab.com/upload2_31cc2e024f91058a742d8bed95c7ca4f/

    1.重复第一个的操作,发现并没有js验证

    2.抓包进行分析 进入repeat选项卡中,将文件后缀名改为大写发现也不行,

    3.将content-type修改为 image/jpeg 点 go 发现成功上传。

    实战3

     文件上传之00截断

    http://ctf5.shiyanbar.com/web/upload/

    1.进行抓包 >=

    2.右键 send to repeat ,通过常规方法依次实验 都不行

       考虑可能存在00截断:

    添加上一个 + 

    点击 hex 找到对应的十六进制代码 改为00

    点击 go 还是不行 

    返回看到有一个路径 dir

    在路径后添加 alert.php%00

    选中%00 右键convert selection >= url => url decode

    filename后缀改为jpg

  • 相关阅读:
    PHP获取指定分钟数的下一个整数倍
    phpspreadsheet
    澳大利亚 主要城市列表
    db2编目抽取
    openssl实现CA自签证书和颁发数字证书
    基于Docker的redis集群搭建
    Python测试DB2连通性
    在Vim中查看文件编码
    搭建redis集群
    Python(十)之GUI编程
  • 原文地址:https://www.cnblogs.com/Abelte/p/8919722.html
Copyright © 2011-2022 走看看