20189224 《网络攻防实践》/《网络攻击与防范》第十周学习总结

20189224 《网络攻防实践》/《网络攻击与防范》第十周学习总结

冯·诺依曼体系结构和图灵机

图灵机是一个计算机的理论模型,本质上是状态机;冯诺依曼体系是图灵机的实现,包括运算、控制、存储、输入、输出五个部分。诺依曼体系相对之前的计算机最大的创新在于程序和数据的存储,以此实现机器内部编程。
图灵机的纸带应对应诺依曼计算机体系中的存储,读写头对应输入和输出,规则(读了一个符号后下一步做什么)对应运算,纸带怎么移动对应控制。

图灵机

图灵机(Turing Machine)是图灵在1936年发表的 “On Computable Numbers, with an Application to the Entscheidungsproblem”(《论可计算数及其在判定性问题上的应用》)中提出的数学模型。并且在文章中被证明了任何可计算问题都可在图灵机上解决。
图灵机的结构包括以下几个部分:
一条无限长的纸带(tape),纸带被分成一个个相邻的格子(square),每个格子都可以写上至多一个字符(symbol)。
一个字符表(alphabet),即字符的集合,它包含纸带上可能出现的所有字符。其中包含一个特殊的空白字符(blank),意思是此格子没有任何字符。
一个读写头(head),可理解为指向其中一个格子的指针。它可以读取/擦除/写入当前格子的内容,此外也可以每次向左/右移动一个格子。
一个状态寄存器(state register),它追踪着每一步运算过程中,整个机器所处的状态(运行/终止)。当这个状态从运行变为终止,则运算结束,机器停机并交回控制权。如果你了解有限状态机,它便对应着有限状态机里的状态。
一个有限的指令集(instructions table),它记录着读写头在特定情况下应该执行的行为。可以想象读写头随身有一本操作指南,里面记录着很多条类似于“当你身处编号53的格子并看到其内容为0时,擦除,改写为1,并向右移一格。此外,令下一状态为运行。”这样的命令。其实某种意义上,这个指令集就对应着程序员所写下的程序了。

冯·诺依曼体系结构


冯·诺依曼体系结构主要由五大部件组成

  • 存储器用来存放数据和程序
  • 运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
  • 控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
  • 输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等
  • 输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等
    冯诺依曼体系结构的指令和数据均采用二进制码表示;指令和数据以同等地位存放于存储器中,均可按地址寻访;指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。

    程序=指令+数据

  • 程序装载后, 程序指令放只读区域, 程序数据放在可读写区域。 可以防止程序被篡改。
  • 程序指令和数据指令分开, 可以提高CPU对cache的命中率, 集中了精力哈。
  • 程序指令可以被多进程共享, 但程序数据在多进程中相互独立。

    缓冲区溢出,XSS攻击,SQL注入攻击

    SQL注入攻击

    SQL攻击(SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。
    原因
    在应用程序中若有下列状况,则可能应用程序正暴露在SQL Injection的高风险情况下:
    在应用程序中使用字符串联结方式组合SQL指令。
    在应用程序链接数据库时使用权限过大的账户(例如很多开发人员都喜欢用sa(内置的最高权限的系统管理员账户)连接Microsoft SQL Server数据库)。
    在数据库中开放了不必要但权力过大的功能(例如在Microsoft SQL Server数据库中的xp_cmdshell延伸预存程序或是OLE Automation预存程序等)
    太过于信任用户所输入的数据,未限制输入的字元数,以及未对用户输入的数据做潜在指令的检查。
    作用原理
    SQL命令可查询、插入、更新、删除等,命令的串接。而以分号字元为不同命令的区别。(原本的作用是用于SubQuery或作为查询、插入、更新、删除……等的条件式)
    SQL命令对于传入的字符串参数是用单引号字元所包起来。(但连续2个单引号字元,在SQL资料库中,则视为字串中的一个单引号字元)
    SQL命令中,可以注入注解(连续2个减号字元 – 后的文字为注解,或“/”与“/”所包起来的文字为注解)
    因此,如果在组合SQL的命令字符串时,未针对单引号字元作取代处理的话,将导致该字元变数在填入命令字符串时,被恶意窜改原本的SQL语法的作用。

    XSS攻击

    xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。
    xss攻击可以分成两种类型:
    非持久型攻击
    持久型攻击
    非持久型xss攻击
    顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
    持久型xss攻击
    持久型xss攻击会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在

    缓冲区溢出

缓冲区溢出的攻击大致分为以下几类:

  1. 栈溢出(stack smashing)
       未检查输入缓冲区长度,导致数组越界,覆盖栈中局部变量空间之上的栈桢指针%ebp以及函数返回地址retaddr, 当函数返回执行ret指令时,retaddr从栈中弹出,作为下一条指令的地址赋给%eip寄存器,继而改变原程序的执行流程指向我们的 shellcode.
  2. 堆溢出(malloc/free heapcorruption)
      一种是和传统的栈溢出一样, 当输入超出malloc()预先分配的空间大小,就会覆盖掉这段空间之后的一段存储区域,如果该存储区域有一个重要的变量比如euid,那么我就可以用它 来攻击。另一种是典型的double-free堆腐败,在内存回收操作中,合并相邻空闲块重新插入双向链表时会有一个写4字节内存的操作,如果弱点程序由 于编程错误free()一个不存在的块,我们就可以精心伪造这个块,从而覆盖任何我们想要的值:函数的返回地址、库函数的.plt地址等
  3. 格式化字符窜漏洞(format stringvulnerability)
      如果格式窜由用户定制,攻击者就可以任意伪造格式窜,利用*printf()系列函数的特性就可以窥探堆栈空间的内容,超常输入可以引发传统的缓冲区溢出,或是用”%n”覆盖指针、返回地址等。
  4. 整形变量溢出(integer variableoverflow)
      利用整数的范围、符号等问题触发安全漏洞,大多数整形溢出不能直接利用,但如果该整形变量决定内存分配等操作,我们就有可能间接利用该漏洞。
  5. 其他的攻击手法(others)
      只能算是手法,不能算是一种单独的类别。利用ELF文件格式的特性如:覆盖.plt(过程连接表)、.dtor(析构函数指针)、.got(全局偏移表)、return-to-libc(返回库函数)等的方式进行攻击。

参考资料

原文地址:https://www.cnblogs.com/20189224sxy/p/10816520.html

时间: 2024-09-30 14:47:27

20189224 《网络攻防实践》/《网络攻击与防范》第十周学习总结的相关文章

2019-2020-1学期20192423《网络空间安全专业导论》第十周学习总结

2019-2020-1学期20192423<网络空间安全专业导论>第十周学习总结 一.内容总结 第四章 信息安全 (一)操作系统概述 计算机操作系统功能主要包括: 进程管理:主要负责对中央处理器的时间进行合理分配.对处理器的运行进行有效的管理. 内存管理:主要负责对计算机内存空间进行合理分配.保护和扩充,用于解决多道进程共享内存资源时的冲突,并通过有效的管理方式提高计算机内存空间利用率. 设备管理:根据一定的分配原则对计算机的硬件设备进行调度和分配,使设备与计算机能够并行工作,为用户提供良好的

20159302《网络攻击与防范》第九周学习总结

一.视频学习内容 1.压力测试 压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试.通俗的讲,压力测试是为了发生在什么条件下您的应用程序的性能会变得不可接受. kali下压力测试工具包含VoIP压力测试.WEB压力测试.网络压力测试以及无线压力测试四个分类. 1.1 VoIP压力测试工具:主要包括iaxflood和inviteflood. 1.2 WEB压力测试:THC-SSL-DOS,借助THC-SSL-DOS攻击工具,任何人都可以把提供SSL安全连接

2019-2020-1学期 20192416《网络空间安全专业导论》第十周学习总结

第四章 第七章 第二节 原文地址:https://www.cnblogs.com/hantaku/p/12026284.html

2017-2018-2 20179215《网络攻防实践》第六周作业

2017-2018-2 20179215<网络攻防实践> 第六周学习总结 课本学习笔记 一.TCP/IP网络协议攻击 1.网络安全的属性:机密性 .完整性 .可用性 .真实性 .不可抵赖性 . 2.网络攻击的基本模式分为:截获(嗅探 与 监听) .中断(拒绝服务) .篡改(数据包篡改) .伪造(欺骗) . 3.TCP/IP网络协议栈在设计时采用了分层模型,分为:网络接口层 .互联层 .传输层 .应用层.每一层当中都有针对破坏网络安全属性为目的的攻击技术.每一层所涉及的主要协议: 网络接口层:以

第四周网络攻防实践作业

第四周 <网络攻防实践作业> 第一节.网络攻防技术与实践 1. 网络嗅探 l 定义:网络嗅探是利用计算机的网络端口解惑目的地为其他的计算机的数据报文,以监听数据流中所包含的信息. l 攻击方式:攻击者获得内部某一台主机的访问权后,能够被攻的听取网络上正在传输的数据,从中获取信息和用户口令,协议信息,为发起深层次攻击做好充足准备.同时通过这种方式,也可以发起中间人攻击,由于具有非干扰性,所以很难被发现. l 防御方式:网络嗅探可以被防御者用来捕获与分析网络的流量信息,以便找出网络中的而问题所在,

网络攻防实践 第十周作业

网络攻防实践作业 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,tabl

2017-2018-1 20179206《网络攻防实践》第一周作业

a.你对师生关系的理解,希望是哪种关系? 我认为师生关系是一种相互平等交流的关系. 为什么这样说,因为这是由网络攻防实践这门可得特殊性来决定的,网络攻防是门实践课,需要大量的联练习和摸索,同时大部分学生对这一领域不熟悉,需要学习Linux在内的很多新东西,在中间会产生大量的新问题,这些问题需要向老师请教,如果能够尽可能的成为一种相互平等的关系,同学会更乐于去发现问题和请教问题,从而能爱上实践,爱上这门课. b.如何提问? l 提问的内容要先自我独立解决: 作为一门计算机实践课,首先放在第一位的就

2017-2018-2 20179215《网络攻防实践》第八周作业

<网络攻防实践> 第八周 学习总结 一.第八章教材内容总结 Linux 操作系统简介 Linux 系统特点: 兼容UNIX :API 兼容,管理命令和各种工具: 源码开放 支持各种硬件平台,支持多CPU Linux 平台上存在大量的应用软件,以及应 用开发工具 多种不同发行版: RedHat(RHEL,Fedora, CentOS, -),Ubuntu,Debian, - 2.Linux 操作系统: 不是微内核系统,但具有某些微内核特征 Intel 版本:i386 的保护模式,特权级 内核态(

2019-2020-1学期 20192404 《网络空间安全专业导论》第十一周学习总结

第5章?应用安全 5.1?应用安全概述 早期应用系统结构:客户/服务器模式 这个模式具有一定的缺陷,对应用系统.资源等有一定影响. 目前的应用系统结构:三层客户/服务器结构 浏览器<->Internet<->Web应用服务器<->中间件<->数据库 黑客攻击Web应用服务器.中间件.数据库,:利用漏洞.在网页中植入恶意代码. ?常见的Web应用安全漏洞 5.2.1?SQL注入漏洞 SQL注入漏洞是Web层面最高危的漏洞之一. SQL注入漏洞的形成原因就是:用