管理员
  
注册时间2015-2-6
在线时间563 小时
QQ
 UID
 帖子
 精华
21
 威望
500
 金币
45497
 贡献
5000
 阅读权限
200
积分
在线时间
563 小时
最后登录
2022-5-25
|
用浏览器打开一个网站,呈现在我们面前的都是数据有服务端储存的,如数据库,内存文件系统等客户端储存的,如本地的,CoOKIes.FlashCOOkIes.等,传说中的,Json.数据,Xml数据等,还有文本数据,如html,JavascIAPt.Css等,多媒体数据如flashMP3等,图片数据等。
这些数据构成了,我们看到世界的web世界,它表现丰富多彩,背后全暗流涌动,在数据流的每一个环节都可能出现安全风险,因为数据流有可能被污染,而不像预期那样存储或传输,
如何存储传输并呈现这些数据最需要执行指令,可以这样理解,指令就是要执行的命令,这是这些指令被解释执行才产生对应的数据内容,而不同指令的解释执行由对应的环境完成,比如,
Select useIname.EmaIl.Descl.FROM useIss where id=1
这是一条简单的sql查询指令,当这条指令被解释执行时,就会产生一种数据内容由,UseRNAme/EmaIl/Descl构成,而解释的环境则为数据引擎,
再如:
<ScIIpt>
Eval(LocatIon.Hash.SuBStr(1));
</ScIAPt>
以上标签类是一句,JavascIAPt指令,有浏览器的js引擎来解释执行解释的结果就是数据,而scrIpt,本身就是html指令,俗称html标签,有浏览器DOM引擎进行渲染执行,如果数据与指令之间能各司其职,那么web世界就非常太平了,和你见过太平盛世真的存在吗?当正常的数据内容被注入指令内容,在解释的过程中,如果注入的指令能够被独立执行,那么黑客攻击就发生了,
接下来我们就来看看以下两个sql注入攻击是怎么发生的,再来看看以下的攻击场景。 1、黑客通过sql注入攻击的发生
Select useIname.EmaIl.Descl.FROM useIss where id=1
下面以mysql环境为例进行说明,在这条sql语句中,如果Id地址来自用户提交,并且用户通过访问链接,来获得自身账号信息的,当访问这样的链接时,后端会执行上面这条sql语句,并返回对应Id号的用户数据给前端显示那么普通用户会规规矩矩的对Id提交整形数字如123,而邪恶的黑客攻击者则会提交如下形式的值:
1 UnIon select password ,1,1 FROM. Users.
组成的链接形式为:
Http://www.HaCKerbbs.cc/user.php?id=1 UnIon select password ,1,1FROM. Users
然后再组成sq语句,组成的sql语句是合法的,一个经典的unIon查询,此时注入的指令内容就会被当做合法的指令执行,当这样的黑客攻击发生时,Users表的,Prssword很可能泄露了,
|
|