Web安全的关键点
1.信任与信任关系
其实安全的攻防都是围绕“信任”进行的。同源策略也是信任的一种表现,默认情况下,不同源则不信任,即不存在什么信任关系。
- 如果网站与网站之间过于信任,没有做好权限分离的话,那么整体的安全性就由安全性最差的囊而网站决定。
- 如果嵌入了第三方的脚本,很有可能危及到访问你的网站。这种信任关系很普遍,服务器与服务器,网站与网站,Web服务的不同子域,Web层面与浏览器第三方插件,Web层面与浏览器特殊API,浏览器特殊API与本地文件系统,嵌入的FLASH与当前DOM树,不同协议之间等等。一个安全性非常好的网站很有可能会因为建立了不可靠的信任关系导致网站被黑。
2.社会工程学的作用
社会工程学简称社工。
通俗地说,社工就是“骗”,即如何伪装攻击以欺骗目标用户。常用的社工辅助技巧有:GoogleHack, SNS 垂直搜索,各种收集的数据库集合查询等。
3.攻防不单一
一次完整的渗透会利用到多种攻击手法。比如:某开源Web应用的管理员后台有SQL注入,用过前期的踩点,我们发现这个SQL注入具有操作系统写权限,而且知道了该开源Web应用的物理路径。如果不是管理员后台,直接用一条SQL语句就可以得到一个Web后门,好像很可惜,因为必须具备管理员权限。其实不然,在这个场景中,完全不用悲观,借用CSRF很可能就能成功,大致过程如下:
(1) 提交这条包含恶意SQL语句的后台连接(事先做好URL的各种编码转换,以达到隐蔽效果)给管理员,比如留言,评论,申请友情连接等。
(2) 管理员登陆Web应用被诱骗打开了这条连接。
(3) 发生CSRF(跨站请求伪造)了,此时就会以管理员权限进行后续的指令执行。