zoukankan      html  css  js  c++  java
  • 20169220 <网络攻防实践> 第十一周实验—SQL注入+TCP/IP攻击

    Collabtive 系统 SQL 注入实验

    • SQL注入技术是利用web应用程序和数据库服务器之间的接口来篡改网站内容的攻击技术。通过把SQL命令插入到Web表单提交框、输入域名框或页面请求框中,最终欺骗服务器执行恶意的SQL命令。

    环境搭建

    • 启动mysql
    • 启动Apache
    • 配置DNS
    • 配置网站文件

    • 关闭php配置策略:把magic_quotes_gpc=On 改为 magic_quotes_gpc = Off

    实验内容

    lab1 select语句的sql注入

    • 查看登陆验证文件,找到其中第375行,修改完后重启一下服务器
    • 在$user后面加上) # 这样就会只验证用户名,后面的会被#注释,点击登陆以后,就可以绕过密码直接登录

    lab2 update语句的sql注入

    • 在Collabtive web应用程序中,如果用户想更新他们的个人资料,他们可以去我的帐户,单击编辑链接,然后填写表格以更新资料信息。在用户发送更新请求到服务器,一个UPDATE SQL语句将建造在include/class.user.php。这句话的目的是修改用户表中的当前用户的配置信息。有一个在这个SQL语句中的SQL注入漏洞;
    • 可以找到如下的代码:function edit,会发现​sql语句为:SELECT ID WHERE name=​'$user',并且company的位置是存在注入漏洞,原理同lab1。
    • 在编辑用户的位置:user 填 ted 用户;Company 处填:
    • 点击修改,然后退出当前用户,使用ted用户登录,这个时候ted用户的密码应该是pass;

    防御策略

    防御策略1

    • 防御转义特殊字符使用,默认开启magic_quotes_gpc,将magic_quotes_gpc值设为On

    防御策略2--避免使用特殊字符

    • MySQL提供一个函数 mysql_real_escape_string(),这个函数可以用来过滤一些特殊字符;如x00, , , , ', " and x1a;
    • 代码防御示例,修改为如下:

    防御策略3--数据与sql语句的分离

    • 通过SQL逻辑分离来告诉数据库到底是哪部分是数据部分,哪一部分是SQL语句部分;提供以新的new mysqli()函数, 将这个函数写入config/standary/config.php文件:
    • 修改代码如下,以及编辑用户处的代码

    TCP/IP的攻击实验

    ARP欺骗

    • ARP缓存是ARP协议的重要组成部分。ARP协议运行的目标就是建立MAC地址和IP地址的映射,然后把这一映射关系保存在ARP缓存中,使得不必重复运行ARP协议。因为ARP缓存中的映射表并不是一直不变的,主机会定期发送ARP请求来更新它的ARP映射表,利用这个机制,攻击者可以伪造ARP应答帧使得主机错误的更新自己的ARP映射表,这个过程就是ARP缓存中毒。这样的后果即使要么使主机发送MAC帧到错误的MAC地址,导致数据被窃听;要么由于MAC地址不存在,导致数据发送不成功。我们的攻击模拟如下:
    • Machine 1 :Kali-Linux IP:222.28.133.186
    • Machine 2:SEED IP:222.28.133.235
    • Machine 3:metasploitable_Linux IP:222.28.133.147
    • 正常情况下:如果Machine 2向Machine 3请求建立Telnet链接,Machine 2会广播ARP请求,询问192.168.40.41(Machine 3)的MAC地址是多少?Machine 3发现ARP广播的IP地址是自己IP,就会儿发送ARP应答,告诉Machine 2自己的MAC地址。然后两者建立请求进行通信。

    攻击

    • 1.Machine 1伪造Machine 3的ARP应答,周期性的广播,构造过程:
    • 2.同时广播
    • 3.这样Machine 2的ARP缓冲就会被修改,无法Telnet到Machine 3

    SYN泛洪攻击

    • 将Machine 3(端口:23)作为Telnet服务器,Machine2作为Telnet客户端,去连接Telnet服务器。
    • 1.正常情况如下
    • 2.对Machine 3的端口23进行洪泛攻击
    • 3.此时查看Machine 3的端口23的待处理队列如下:
    • 4.此时 Machine 2的Telnet客户端无法再次连接 Machine3
  • 相关阅读:
    cae when分组统计
    查看 Chrome 下载的文件的真实下载地址
    directory opus使用教程
    文件内容极速搜索工具: silversearcher-ag
    LINUX SHELL 变量的二次引用
    JS小练习
    jQuery
    JS-BOM对象
    JS-DOM对象
    JavaScript-基础知识
  • 原文地址:https://www.cnblogs.com/nirvanakurt/p/6828245.html
Copyright © 2011-2022 走看看