学习脚本黑客:XSS和CSRF
XSS,英文全称Cross Site Script(跨站式脚本攻击),是一种针对前端的注入;CSRF英文全称是Cross Site Request Forgery(跨站请求伪造),是通过伪装成目标用户完成窃取信息、钱财的黑客操作
XSS漏洞
关于XSS『是什么』的问题,前面讲过了,此处从略
存储型XSS
存储型XSS的脚本被黑客预先写到数据库
1)用户打开浏览器,访问网页
2)浏览器向后端应用程序请求内容
3)查询数据库,将XSS脚本留言返回给Web应用程序
4)最终返回给用户浏览器,触发XSS
反射型XSS
和存储型XSS不同的是,反射型XSS不仅可以在源码中找到,而且还可以在存在XSS漏洞的url链接中找到
1)用户在浏览器中访问存在XSS的url链接
2)浏览器向后端应用程序发起请求,后端程序
3)后端应用程序将url中的XSS脚本写入相应页面返回给浏览器
4)浏览器渲染相应页面,触发XSS
DOM型XSS
和反射型XSS一样,DOM型XSS在URL链接中也可以看到XSS脚本源码
DOM型XSS脚本存在于url的Hash中
CSRF漏洞
CSRF漏洞概念
CSRF漏洞是指利用用户已经登陆的身份,在用户毫不知情的情况下,以用户的名字完成非法操作(利用Cookie)
CSRF漏洞分析
1)通常cookie中存放用户凭证信息
2)浏览器在发送任何请求时,会自动带上已有的cookie
3)利用cookie识别用户身份后,执行转账操作
CSRF代码实例
可以看到,这段CSRF脚本中的嵌入了一一段JS代码用来提交表单,subForm()
函数用来自动提交表单,form字段中action是转账地址,input字段中是转账信息
因为form
表单提交(转账到黑客账户)会有明显的页面跳转,为了增强隐蔽性,可以在攻击页面的source code中嵌入一个iframe
标签,其中放置真正的恶意代码(就是上面这个),并把width
和height
属性设置为0,这样用户不会察觉到任何异样(除非查看源代码,就会发现问题)