实验实训7

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

常用的防御方式和常用绕过手段

1、前端JS检测

客户端前端在JavaScript代码中加入了对扩展名的黑白名单检查。

攻击时可以直接禁用javasrcipt。

2、MIME检测

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。防御时服务器端对MIME类型进行严格验证,防止恶意文件上传。

服务端代码是通过Content-Type的值来判断文件的类型,攻击者可以直接对文件的Content-Type进行修改来绕过此防御方式。

3、白名单检测

要求只能是特定扩展名的文件才能上传。

攻击者可使用%00截断,在url中%00表示ascll码的0 ,而ascii码的0,表示字符串结束,所以当url中出现%00时就会认为读取已结束。(需满足php版本<5.3.4才有可能存在此漏洞)

黑名单绕过(使用扩展名黑名单来限制上传文件类型)

1、文件拓展名绕过

使用双重扩展名或伪装扩展名,让服务器错误地识别文件类型,从而执行恶意代码。

2、.htaccess文件绕过

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过上传或修改.htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

3、.user.ini.绕过

使用.user.ini文件修改PHP配置参数,达到绕过安全限制或执行恶意代码的目的。

4、apache解析漏洞 

apache按从右到左的顺序识别文件后缀,直至找到后缀能匹配配置文件中的设置。遇到不能识别的后缀名便跳过。上传特殊命名的文件,使文件被错误地解析为可执行脚本。

5、IIS解析漏洞

利用IIS对文件扩展名的特殊解析方式,如双重扩展名,执行意外的脚本代码。

6、Nginx解析漏洞

利用Nginx特定配置下的文件解析规则,执行意外的代码或获取敏感信息。

7、widows系统文件命名规则的特殊利用 

利用Windows对文件名中特定字符(如空格、点号)的处理方式,使文件被错误解析或执行。

二、文件上传常用一句话木马

定义:一句话木马(One-Line Shell)是一种非常简单、简短的恶意代码,通常被嵌入到目标服务器的文件中,以便攻击者获得对服务器的远程控制。

php的一句话木马:<?php @eval($_POST['pass']);?>

其中eval函数可以使php将post进去的内容当做代码处理,而pass为密码。

入侵:

  1. 创建文本文件输入一句话木马,修改文件后缀使之变为php文件,将其上传到需要被入侵的网站。
  2. 打开蚁剑或者菜刀,新建或者添加,填入网址和密码等数据,开启代理连接被入侵的网站。
  3. 连接成功后,可访问网站对应的服务器,在其中可找到想要的数据。

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

1、哥斯拉godzilla

(1)点击管理-->生成(木马),注意选择php类型,其次设置密码密钥

(2)将生成的木马文件(mm.php)上传到upload靶场文件

意外:我的电脑会查杀木马文件,可以通过设置-->隐私和安全性-->windows安全中心-->病毒和威胁防护-->“病毒和威胁防护”设置-->添加排除项保护文件

(3)点击目标添加进行基础配置,注意url,密码,密钥,点击测试,显示成功则点击添加

(4)点击进入

(5)burpsuite的抓包记录

2、冰蝎behinder

(1)添加排除项保护behinder文件再将压缩包解压进去,点击打开,设置如下的传输协议,生成服务端

(2)将上一步生成的shell.php上传到upload靶场

(3)设置代理并启用,新增shell

(4)双击新生成的数据,打开burpsuite抓包成功

3、蚁剑

初始化时,代码解压出错

解决方法:关闭实时保护,右键.exe文件以管理员身份运行再次初始化即可

(1)点击.exe文件打开蚁剑,右键点击空白页,添加数据

(2)输入对应的url和连接密码点击测试,测试成功

(3)设置如下的代理,再测试连接成功

(4)双击数据连接,进入可查看靶场内被上传的文件

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

1、查找上传目录

许多网站的上传目录遵循一定的路径结构,尝试通过常见上传目录进行推测,比如/uploads/、/upload/、/files/、/images/等。

2、查 Web 服务器日志

有时候,上传的文件可能成功,但无法通过常规路径找到。这时可以通过检查Web服务器日志来确定Webshell的上传路径和请求地址。

Apache日志一般存放路径:

/var/log/apache2/access.log或者/var/log/httpd/access_log

Nginx 日志:一般在 /var/log/nginx/access.log

3、猜测常见的Webshell文件名

如果使用了常见的Webshel文件名,如shell.php、webshell.php或带有随机字符的文件名,尝试通过猜测url直接访问这些文件。

4、网络爬虫和扫描工具

使用网络爬虫工具如Burp Suite的爬虫功能,扫描可能存在的 Webshell 文件路径

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

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

无参的文件上传表单:文件上传请求不需要额外的参数,只上传文件即可。适用于简单的文件上传功能,无需额外的信息(例如,文件描述或用户身份验证)。

构建表单示例:

Action:指定上传请求的目标url。

method="post":文件上传使用POST方法。

enctype="multipart/form-data”:指定表单的编码类型multipart/form-data。

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

有参的文件上传表单:除了上传文件外,还需要提交额外的参数,比如文件描述、用户ID、Token 等。适用于带有身份验证和权限管理的上传系统。

构建表单示例:

input type="file": 文件选择框,用户通过该表单字段选择需要上传的文件。

input type="text":额外的参数字段,用于提交用户名、文件描述等信息。

input type="hidden":隐藏字段,用于传递身份验证 Token 或其他后端必需的参数。

input type="file":文件选择框,用于文件上传。

六、upload-labs靶场通关第6-第10关

搭建靶场

1、下载upload-lab-master压缩包https://github.com/c0ny1/upload-labs并解压到phpstudy_pro的www文件下

2、开启apache进入127.0.0.1/upload-labs-master/(靶场网址)即可

解决burpsuite扫描不到upload靶场的问题

(1)关闭burpsuite之前设置拦截的端口3333

(2)在phpstudy上新建如下的网站

(3)火狐浏览器设置如下的网络代理(保证端口与proxy listeners上设置的一样)

(4)输入网址http://127.0.0.1:8081/upload-labs-master/将127.0.0.1换成自己的内网网址

(5)回到burpsuite发现可抓包靶场信息

靶场通关

Pass6(大小写绕过)

1、查看提示,再查看源代码,发现本关对文件后缀的大小写并不敏感

2、尝试大小写绕过的方式,先在网站上上传文件,再使用bp抓包,修改文件名后缀为.PHp点击forward重发,上传成功。

Pass7(空白格绕过)

(1)首先查看源代码发现,缺少对首尾去空的约束

(2)先在网站上上传文件,再使用bp抓包,在文件名后加上英文空格,点击forward重发,上传成功。

Pass8(.绕过)

(1)查看提示和源码发现本关对上传的文件后缀名未做去点.的操作,而在Windows系统下,文件后缀名最后一个点会被自动去除。

(2)先在网站上上传文件,再使用bp抓包,在文件名后加.,点击forward重发,上传成功。

Pass9(数据流属性绕过)

(1)查看源代码发现本关对上传的文件后缀名未做去::$DATA处理。

Windows系统下,如果上传的文件名为test.php::$DATA会在服务器上生成一个test.php的文件,其内容和所上传文件内容相同并被解析。

(2)先在网站上上传文件,再使用bp抓包,在文件名后加::$DATA,点击forward重发,上传成功。

Pass10

(1)查看源代码发现之前的方法全被禁用,但这种禁止不是循环过滤的,尝试点、空白格等组合绕过。

(2)先在网站上上传文件,再使用bp抓包,在文件名后加.. .,点击forward重发,上传成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值