Day7(网络安全)

目录

文件上传防御手段及绕过手段总结

文件上传防御手段

绕过手段

文件上传常用一句话木马

三种webshell管理工具的使用方法

中国蚁剑

哥斯拉

冰蝎

文件上传无回显如何查找webshell地址

文件上传表单的无参/有参情况下构造表单

upload-labs靶场

第一关

第二关

第三关

第四关

第五关

第六关

第七关

第八关

第九关

第十关


文件上传防御手段及绕过手段总结

文件上传防御手段

文件类型验证

        只允许特定类型的文件上传(如图片、文档等)。

        使用MIME类型和文件扩展名进行双重验证。

文件大小限制

        限制上传文件的大小,防止大文件导致的拒绝服务攻击。

文件内容检查

        对文件内容进行扫描,确保没有恶意代码(如病毒、木马等)。

存储位置隔离

        将上传的文件存储在与Web根目录不同的位置,避免直接访问。

重命名文件

        上传后对文件进行重命名,避免使用用户提供的文件名。

使用临时文件

        上传文件时先存储为临时文件,经过验证后再移动到正式存储位置。

权限控制

        限制文件的访问权限,确保只有授权用户可以访问上传的文件。

使用CDN或云存储

        将文件上传到CDN或云存储服务,利用其安全机制。

绕过手段

伪造文件扩展名

        攻击者可能将恶意文件的扩展名更改为允许的类型(如将.php改为.jpg)。

MIME类型伪造

        通过修改HTTP请求中的MIME类型,绕过服务器的类型检查。

文件内容注入

        在允许的文件类型中注入恶意代码(如在图片文件中嵌入PHP代码)。

利用漏洞

        利用Web应用中的漏洞(如路径遍历)访问或执行上传的恶意文件。

跨站脚本(XSS

        上传包含恶意JavaScript代码的文件,通过浏览器执行。

使用代理工具

        使用工具(如Burp Suite)修改请求,绕过客户端的验证。

文件上传常用一句话木马

在pikachu平台上传的一句话木马,通过BP抓包,对其后缀进行修改,使其能够成功上传。

之后,可在本地文件夹里找到对应上传的文件。

三种webshell管理工具的使用方法

中国蚁剑

点开蚁剑,添加数据,在其中输入你所上传文件的网址并输入密码,之后连接。

打开burpsuit,设置代理,与蚁剑一致,随后进行抓包。

哥斯拉

其代理,以及上传的url输入与同上。在我们连接成功之后,双击打开,选择命令执行,

输入一些简单的命令,如:ipconfig等,之后burpsuit进行抓包,对其进行抓包分析,可以对其清晰的进行数据流分析。

冰蝎

安装好后,点开冰蝎,右键新增。连接步骤与上述两个方法一致。

之后直接点开我们连接好的shell,burpsuit上会有抓包提醒,而冰蝎中也会显示出众多的功能。

文件上传无回显如何查找webshell地址

1. 目录遍历攻击

  • 尝试使用目录遍历技术(如../)来访问可能的上传目录。通过构造请求,查看是否可以访问到上传的文件。

2. 猜测文件名

  • 如果知道上传的文件类型和命名规则,可以尝试猜测文件名。例如,如果上传的是shell.php,可以尝试访问http://example.com/uploads/shell.php

3. 使用工具进行扫描

  • 使用自动化工具(如DirBusterGobuster等)进行目录和文件名的爆破,寻找可能的WebShell文件。

4. 查看响应头

  • 在上传文件后,查看HTTP响应头,可能会包含一些线索,例如文件存储路径或其他信息。

5. 分析请求和响应

  • 使用抓包工具(如Burp SuiteFiddler)分析上传请求和响应,寻找可能的文件路径或其他信息。

6. 检查常见上传目录

  • 常见的上传目录包括/uploads//files//images/等,可以尝试直接访问这些目录。

7. 利用搜索引擎

  • 使用搜索引擎(如Google)进行特定的搜索,尝试查找可能的WebShell文件。例如,使用inurl:搜索特定目录。

8. 利用日志文件

  • 如果有权限访问服务器日志,可以查看上传请求的日志,找到上传文件的路径。

9. 社交工程

  • 如果可能,尝试通过社交工程手段获取管理员或开发人员的信息,了解文件上传的具体实现和存储位置。

10. 利用反向Shell

  • 如果WebShell能够执行命令,可以尝试通过反向Shell连接到攻击者的机器,获取更多信息。

文件上传表单的无参/有参情况下构造表单

无参情况下的文件上传表单

在无参的文件上传表单中,表单的主要目的是允许用户上传单个或多个文件到服务器。构造这种表单的基本步骤如下:

  1. 创建表单元素:使用<form>标签创建一个HTML表单,并设置action属性为服务器端脚本的URL,以及method属性为post

  2. 指定编码类型:为了确保文件数据能够正确编码,需要设置enctype属性为multipart/form-data

  3. 添加文件输入字段:在表单内部,使用<input>标签并设置type="file"属性来创建文件选择字段。通常还会设置一个name属性,以便服务器端脚本能够识别该字段。

  4. 提交按钮:添加一个提交按钮,允许用户提交表单。

在这个简单的表单中,用户只能上传文件,没有其他额外的数据与文件一起发送。

有参情况下的文件上传表单

在有参的文件上传表单中,除了上传文件,用户还可以输入或选择其他数据,这些数据将与文件一起发送到服务器。构造这种表单的步骤如下:

  1. 创建表单元素:与无参表单相同,创建一个<form>元素,并设置适当的actionmethod属性。

  2. 指定编码类型:同样需要设置enctypemultipart/form-data

  3. 添加文件输入字段:创建文件上传字段,方法同无参表单。

  4. 添加其他输入字段:根据需求,可以添加文本框、单选按钮、复选框、下拉菜单等,以收集额外的信息。

  5. 提交按钮:提供提交按钮,让用户能够将整个表单数据发送到服务器。

在有参的表单中,每个额外的输入字段都需要有一个唯一的name属性,这样服务器端脚本才能正确解析和区分这些数据。

upload-labs靶场

第一关

最简单的模式,前端检测,因此先把后缀名改为jpgpng,然后使用BP抓包,绕过前端检测,然后修改后缀名就可以绕过。

第二关

使用与第一关的方法绕过,先把后缀名改为jpgpng,然后使用BP抓包,绕过前端检测,然后修改后缀名就可以绕过。

第三关

尝试上传3.php,发现黑名单提示:不允许上传.asp,.aspx,.php,.jsp后缀文件。在某些特定环境中某些特殊后缀仍会被当作php文件解析 phpphp2php3php4php5php6php7phtphtmphtml

这里用.ptml试一下,直接上传一个名为3.phtml的文件,可以发现直接上传成功

第四关

尝试上传4.php4.php54.phtml以及各种大小写后缀均绕过失败,查看提示

在试过多次其他方式绕过后,发现php后缀名无论怎么都无法绕过,所以,考虑使用.htaccess攻击,这个文件的特性是会把你定义的文件名所含有的字符都会当成php文件执行.

所以,先上传一个.htaccess文件(文件名只能是.htaccess,如果是其他的,会导致该文件失效),然后再上传一个含有该代码定义字符的文件名的文件,后缀名随意,但文件名必须含有定义字符

先上传.htaccess再上传aa1.txt,成功访问。

第五关

修改第四关的.htaccess,里面的php,因改为Php,这样第五关就可以通过修改大小写,进行绕过,随后可以在本地的upload里查看。

第六关

查看提示发现文件大小写过滤不严谨,可以绕过。因为phpstudy的版本原因,在查看php时报错。但,在本地的load文件夹里能够找到我们上传的php文件。以此,可验证我们上传成功。

第七关

尝试大小写绕过,.htaccess文件等均显示此文件禁止上传,查看源码

发现没有对上传的文件名做去空格的操作->trim()
利用burp抓包,修改对应的文件名 添加空格

第八关

查看源码

发现对上传的文件后缀名未做去点.的操作—>strrchr($file_name, '.')
Windows系统下,文件后缀名最后一个点会被自动去除。在上传的文件后,可增加一个‘ . ’,以此进行绕过。

第九关

分析代码发现 对上传的文件后缀名未做去::$DATA处理

第十关

后缀名php后面.空格.空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值