其他分享
首页 > 其他分享> > 2018-2019-2 20189221 《网络攻防技术》第十周作业

2018-2019-2 20189221 《网络攻防技术》第十周作业

作者:互联网

2018-2019-2 20189221 《网络攻防技术》第十周作业

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

冯·诺依曼体系结构描述了指令和数据被存储在存储器中所存储的程序的计算机和机的工作原理,通过改变其内部状态,即,一个指令在某些数据进行操作,并修改数据。因此,系统中存在状态。

图灵机体系结构的工作原理是在磁带上操纵符号。即存在具有无限数量的槽的带,并且在任何一个时间点,图灵机都在特定的槽中。根据在该插槽读取的符号,机器可以更改符号并移动到不同的插槽。所有这些都是确定性的。

冯·诺依曼体系结构是用于构建实际计算机的架构(其实现图灵机在理论上描述的内容)。

图灵机是发明的理论概念,用于在数学上探索可计算问题的领域并获得描述这些计算的方法。

图灵构造出一台假想的机器,该机器由以下几个部分组成:

  1. 一条无限长的纸带TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号{\displaystyle \square }\square表示空白。纸带上的格子从左到右依次被编号为0, 1, 2, ...,纸带的右端可以无限伸展。

  2. 一个读写头HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。

  3. 一套控制规则

    TABLE

    。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态,按照以下顺序告知图灵机命令:

    • \1. 写入(替换)或擦除当前符号;
    • \2. 移动 HEAD, 'L'向左, 'R'向右或者'N'不移动;
    • \3. 保持当前状态或者转到另一状态
  4. 一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态

冯·诺伊曼结构基于1945年的描述由数学家和物理学家约翰·冯·诺伊曼等人在edvac报告书的第一份草案该文件描述了具有以下组件的电子数字计算机的设计架构:

冯·诺伊曼结构在体系结构上主要特点有:

  1. 以运算单元为中心
  2. 采用存储程序原理
  3. 存储器是按地址访问、线性编址的空间
  4. 控制流由指令流产生
  5. 指令由操作码和地址码组成
  6. 数据以二进制编码

就计算能力而言,图灵机和冯·诺伊曼机器是等价的。任何一方都可以模仿另一方(IIRC,在图灵机上模拟von Neuman程序是O(n ^ 6)操作)。以lambda演算形式的函数式编程也是等价的。实际上,至少与图灵机一样强大的所有已知计算框架都是等效的:

可以使用任何这些模型计算的函数集没有区别。

函数式编程源自lambda演算,因此它不直接映射到Turing或von Nemuan机器。然而它们中的任何一个都可以通过仿真运行功能程序。我认为图灵机的映射可能比冯诺伊曼机器的映射更繁琐.

程序=指令+数据

上学期学习的深入理解计算机系统,以及本科时学习的计算机系统结构教程(第2版)对这方面有了一些了解。

我对于这种说法的理解是这是偏向于硬件思维或者说是程序执行方面的,另一种很常见的说法:程序=算法+数据结构是偏向于软件思维或者说是程序编写方面的。

所有的程序,或者说程序操作、程序语言都可以分为两类:

当程序执行时:

安全问题及其防范方法

SQL注入攻击

利用web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。SQL注入攻击的原理是WEB应用程序提供的用户输入接口(如一个动态页面的输入参数、变淡的输入框等)输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,是的注入代码得以执行完成非预期的攻击操作行为。

SEED SQL注入实践

运行 Apache Server:镜像已经安装,只需运行命令sudo service apache2 start

关闭对抗措施:找到/etc/php5/apache2/php.ini,找到magic_ quotes_ gpc = On这一行改为magic_quotes_ gpc = Off

phpBB2 web 应用:镜像已经安装,通过 http://www.sqllabmysqlphpbb.com 访问。

尝试密码:

密码错误:

修改登陆验证文件中的sql语句:

绕过密码登陆:

XSS攻击

XSS跨站脚本攻击的最终目标是使用web应用程序的用户。XSS攻击的根源同样是WEB应用程序对用户输入内容的安全验证与过滤不够完善。现有两种主要的XSS漏洞类型,持久性XSS漏洞和非持久性XSS漏洞。对XSS的防范措施可以分为服务器端和客户端。服务器端防范措施包括输入验证、输出净化、消除危险的输入点。

SEED XSS攻击:

发布包含<script>alert(/xss/);</script>的帖子:

显示/xss/

帖子中包含cookie信息:


消息窗口显示cookie

缓冲区溢出

缓冲区溢出是一种最为基础的软件安全漏洞与利用技术,计算机程序中存在的一类内存安全违规类漏洞,在计算机程序向特定缓冲区内填充数据时,超出了缓冲区本身的容量,导致外溢数据覆盖了相邻内存空间的合法数据,从而改变了程序执行流程破坏系统运行完整性。

SEED 缓冲区溢出:

1.输入命令“linux32”进入32位linux环境,输入“/bin/bash”使用bash(可以补全tab)。

2.使用命令sudo sysctl -w kernel.randomize_va_space=0关闭地址空间随机化功能。

3.为了进一步防范缓冲区溢出攻击及其它利用shell程序的攻击,许多shell程序在被调用时自动放弃它们的特权(能欺骗一个Set-UID程序调用一个shell,也不能在这个shell中保持root权限)。这个防护措施在/bin/bash中实现。使用以下指令将另一个shell程序(zsh)代替/bin/bash,从而重现这一防护措施被实现之前的情形。

4.攻击漏洞

5.Stack+Guard

防范方法

防范SQL注入:

防范XSS攻击:

原则:不相信用户输入的数据

防范缓冲区溢出:

参考资料

标签:攻击,程序,2019,2018,缓冲区,图灵机,输入,20189221,溢出
来源: https://www.cnblogs.com/gdman/p/10783772.html