Web前端认识
班级:0441104
姓名:夏维 ;王波
学号:30 ;32
授课教师:***
对Web前端的认识
由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。根据Gartner的最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击。然而现实确是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证Web应用本身的安全,给黑客以可乘之机。
一、Web的介绍
1、web的起源
Web是World Wide Web的简称,中文称之为万维网,是用于发布、浏览、查询信息的网络信息服务系统,由许多遍布在不同地域内的Web服务器有机地组成
2、Web架构的精妙处
从技术层面上看,Web架构的精华有三处:用超文本技术(HTML)实现信息与信息的连接;用统一资源定位技术(URL)实现全球信息的精确定位;用新的应用层协议(HTTP)实现分布式的信息共享。
3、Web技术涉及的技术
Web是一种典型的分布式应用架构。Web应用中的每一次信息交换都要涉及到客户端和服务端两个层面。因此,Web开发技术大体上也可以被分为客户端技术和服务端技术两大类。
(1)客户端技术
①HTML语言的诞生
Web客户端的主要任务是展现信息内容,HTML语言是信息展现的最有效载体之一。作为一种实用的超文本语言, 1990年,第一个图形化的Web浏览器"World Wide Web"终于可以使用一种为Web度身定制的语言--HTML来展现超文本信息了。
②从静态信息到动态信息
最初的HTML语言只能在浏览器中展现静态的文本或图像信息,随后由静态技术向动态技术逐步转变。1997年,Microsoft发布了IE ,并将动态HTML标记、CSS和动态对象模型发展成了一套完整、实用、高效的客户端开发技术体系,Microsoft称其为DHTML。同样是实现HTML页面的动态效果,DHTML技术无需启动Java虚拟机或其他脚本环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。
为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,又引入了对QuickTime插件的支持。Real player插件、Microsoft自己的媒体播放插件Media Player也被预装到了各种
Windows版本之中。随后Flash插件的横空出世。
(2)服务端技术
与客户端技术从静态向动态的演进过程类似,Web服务端的开发技术也是由静态向动态逐渐发展、完善起来的。
二、漏洞挖掘
漏洞挖掘技术一直是网络攻击者最感兴趣的问题,漏洞挖掘的范围也在随着技术的提升而有所变化.在前期针对缓冲区溢出 格式化字符串 堆溢出 lib库溢出等技术都是针对ELF文件或者PE文件的漏洞挖掘技术.在针对ELF文件 PE文件如*.exe与*.dl的漏洞挖掘过程中,出现了很多的漏洞挖掘技术,但是针对PE文件 ELF文件的漏洞挖掘始终停留在了黑盒测试(包括单元黑盒测试)源代码审计等办法.通过RATS等源代码审计软件可以到部分源代码级别的漏洞信息,但是毕竟源代码审计软件寻的多数为strcpy memcpy等存在缓冲区溢出遗患的C函数,所以通过审计源代码的办法来进行漏洞挖掘是一个可能性系数很小的漏洞挖掘技术,而针对软件的黑盒子测试虽然也能到一些软件的漏洞,但可能性系数也会较小,在国外的一
些进行漏洞挖掘的办法已经慢慢的提升为自己写黑盒子测试代码,然后针对系统或软件的某个功能模块进行模块化的漏洞挖掘技术.例如Linux内核的很多漏洞都是通过fuzzing技术到的,fuzzing即模糊测试的意思,大家可以理解为类似SQL盲注入类型的攻击技术.网络安全的界限在不断的提升,目前缓冲区溢出漏洞已经如MS SQL注入般的被很多人堵死,而在进行网络入侵渗透的过程中,很多人渗透成功的着力点都是通过WEB开始的,当然有些人是通过MS SQL注入,有些人通过其它的WEB漏洞技术一步步的走到了入侵成功的步骤.我们下面将会讨论一些WEB漏洞挖掘的简单技术,通过这些简单技术的规则,然后配合经验的提高,大家或许会得到意想不到的效果.
浏览web是什么意思WEB漏洞的分类
1、 SQL注入
SQL注入漏洞,是依靠存在弱点的WEB脚本代码,来实现通过浏览器执行任意SQL语句,从而实现最终获取某种权限的攻击技术.SQL注入的关键部分在于对元数据的利用,所谓元数据即数据库的基础数据.例如我们可以通过database() version()来获得数据库的名称及版本,而我们通过SQL内置函数获得的这些内容都属于数据库元数据的内容.理解了元数据的概念,在
后面的章节我会给大家简单的讲解下通过元数据来获取MySQL的数据表.
2、文件包含类型,如PHP的的远程 本地文件包含漏洞
文件包含漏洞是PHP程序特有的一个弱点攻击,原理就是在使用include时没有安全的编程,而能够到文件包含漏洞则是入侵一个WEB系统的很重要的因素,有了文件包含漏洞则可以很快速的达到上传WEBSHELL,然后本地提升权限的作用.
3、 XSS
XSS漏洞是被很多人遗忘的漏洞,但是XSS也是一个比较危险的安全隐患,我看到很多国内介绍XSS漏洞的文章大部分在如何欺骗管理员获得后台登陆帐户或者管理员的cookies文件.但这些仅仅是XSS漏洞的简单用法,如果寻到的XSS漏洞可以任意执行任Javascript脚本,那安全性也是不容忽视的.通过Javascript脚本其实也可以做一些恶意的攻击,甚至可以获得一些WEB程序的源代码,当然这个要看大家对Javascript脚本的熟悉程度.例如我们这几天公布的这个可跨站执行任意Javascript脚本的漏洞,最后我也通过这个漏洞给客户演示了如何获取他们的服务器信息,并最终实现得到其一定权限的方法.同时例如session骗 cookies欺骗,
目前我也把这些规入了XSS漏洞的范围,当然仅仅研究这两个技术也是很值得大家去深入的进行漏洞挖掘的.
二、WEB漏洞挖掘规则
漏洞挖掘规则需要一个WEB浏览器,如IE Firefox等即可,无需读取WEB程序的源代码,只要某个规则符合了漏洞规则的要求,即可以采取相关的漏洞攻击技术进行相应的漏洞攻击办法
例如:
"111")</script>,如果对方的代码过滤了"双引号,那么可以通过,采用'单引号测试,若单引号也过滤呢OK,我们这样来测试,使用数字提交,这样测试XSS的漏洞就扩展到了三条,通过构造HTML语句来实现XSS漏洞的挖掘等等.
XSS的漏洞挖掘规则
"111")</script> "1111")> "1111")> " --> |
使用上面的这些简单漏洞规则,如果模糊测试一些站点的话,可以到一些XSS漏洞。
下面的这四个语句判断是否存在mysql注入,其中'号类型的测试已经不是很可行,特别在PHP5和mysql5的环境下:)
and 1=1 and 1=2 order by 4 |
and 1=1 union select table_schema,table_name,table_rows,table_count from 开始分析mysql数据库到底可以执行到那种程度的注入情况下分析了mysql的系统架构,最终发现通过information_schema数据库提供给mysql用户的元数据可以得到一些mysql数据库的基本信息,例如得到数据库的各个表信息等,还可以得到数据库的权限设置等信息, information_schema数据库用到的表的具体字段
1: KEY_COLUMN_USAGE表 constraint_schema: 存放数据库名 table_schema: 存放数据库名 table_name: 存放数据库表信息 column_name: 存放数据库的字段信息,一般可以获取第一个字段或者自增字段的信息 2: SCHEMA表 schema_name: 存放数据库名 default_charater_set_name: 存放charset类型 default_collation_name: 存放charset相关信息 3: SCHEMA_PRIVILEGES表 grantee: 存放数据库用户名 table_schema: 表名 privilege_type: 权限 4: STATISTICS表 table_schema: 存放数据库名 table_name: 存放表名 index_schema: 数据库名 index_name: 是否缩引 column_name: 存放索引自增字段 5: TABLES表 table_schema: 存放数据库名 table_name: 存放表名 table_type: 表类型 SYSTEM or BASE TABLE engin: MEMORY MYISAM InnoDB version: table_rows:表的行数 auto_increment: 自增的总行数 create_time: 创建表的时间 update_time: 更新表的时间 create_options: 创建表时的约束条件 |
有了这些以后,如果对方系统管理员忽略了这些,则可以达到我们不需要猜测表名而直接获取数据库表名的结果.
猜测列名:
and 1=1 union select username,2,3,4 from user where 1=2
按照这个规则依次类推,如果我们猜测到user表存在username字段,则程序执行是正常的,否则程序会出错,也可以使用where 1=1来打印表的信息,通过这样的办法就可以获取mysql数据库的某些关键表的字段信息,如:admin与password:)
C: 文件包含漏洞
文件包含漏洞的测试,有以下几个比较简单且有效的办法.
1: 新建一个简单的php代码,如:< phpinfo(); >,保存为*.txt格式
2: 新建一个简单的php代码,如:< phpinfo(); >,保存为无后缀格式
然后我们测试时只需要采取下面简单的办法即可,这里我们假设我们下面的文件URL为
漏洞规则
,当然得根据具体的返回信息来判断.例如从XSS漏洞的检测规则可能会发现包含文件漏洞,如果知道PHP的某个函数存在缓冲区溢出,我们假设这个PHP的内置函数为phphtml(char *str),假设,这里的参数inc经过PHP代码时使用了phphtml内置函数,则可以使用下面的办法来触发漏洞,然后来触发溢出并执行shellcode.但这里也存在一个问题,即一般情况下,类似PHP本身的溢出漏洞的利用是有些难度存在的.
三:XSS的概述
最重要的要了解XSS漏洞的是,他们是目前为止发现的,在所有网站超过80%比例的定制Web应用程序中最常见的漏洞。虽然跨站点脚本在一段时间内一直被认为是中等程度的的漏洞,但XSS蠕虫和病毒的出现,已经提高了XSS的评估。软件开发人员和安全专业人员需要知道它是多么简单,以防止代码开发过程中出现XSS漏洞,并且一经查出,他们是多么容易解决。XSS是一种攻击技术,它使得一个网站,写出攻击者提供的可执行代码,然后加载在用户的Web浏览器。也就是说,当黑客使用存在漏洞的网站作为攻击的通道时,
用户是预定的受害者。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论