• web安全测试--XSS(跨站脚本)与CSRF


    XSS攻击原理

    反射型

    发出请求时,xss代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,xss代码随响应内容一起传回浏览器,最后浏览器解析执行xss代码。这个过程像一次反射,故叫反射型xss

    存储型

    存储型xss和反射型xss的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交xss代码。

    XSS攻击手段

    反射型

    反射xss存储在URL中。

    测试语句:

    id=<img src="null" onerror="alert(1)"/>   主动触发

    id=<p onclick="alert('点我')">点我</p>    被动触发

    id=<iframe src="//jd.com"></iframe>     插入广告

    <script>alert(1)</script>

    <p>skii<img src="null" alt="" onerror="alert(1)"></p>

    <p>skii<img src="null" onerror="alert(1)"></p><button onclick=“alert("攻击我")”>攻击我</button>

    javascript:alert('XSS')"

    Unicode下:alert `A `

    u0061u006cu0065u0072u0074 `A `

    x5h'><script>alert(1)</script>rm

    <script>alert(document.cookie)</script>

    "/><script>alert(document.cookie)</script>

    存储型

    存储xss存储在数据库中。

    XSS防范措施

    编码

    对用户输入的数据进行HTML Entity编码

    过滤

    移除用户上传的DOM属性,如onerror等

    移除用户上传的Style节点、Script节点、iframe或frame节点等,不区分大小写

    对上传的数据进行客户端及后台程序的校验

    校正

    避免直接对HTML Entity解码

    使用DOM Parse转换,校正不配对的DOM标签

    --------------------------------------------------------------------------------------------------------------------------------------------

    CSRF攻击原理

    CSRF是指请求迫使某个已登录的浏览器(用户)向攻击者的Web应用发送一个请求(包含token信息cookie信息等),然后攻击者以受害者的名义进行操作

    CSRF攻击手段

    1、同个浏览器打开两个页面:一个页面权限失效后,另一个页面是否可操作成功

    2、使用工具发送请求,在http请求头中不加入referer字段,检验返回消息,是否重新定位到错误界面或者登陆界面。

    如果还可以返回正常的信息就有可能存在CSRF问题。

    CSRF防范措施

    1、用户技巧

    用户退出

    多个浏览器进行访问避免共享进程导致session共享

    2、添加一些确认的操作

    页面上确认操作

    双因子/多因子认证

    3、重新认证,要求用户重新输入密码

    4、session时效时间(比如设置为1小时)

    5、使用token

    服务器端session中增加token值

    请求头中增加token值

    进行请求时对比

    用户退出或session失效token移除并销毁

  • 相关阅读:
    atitit.html编辑器的设计要点与框架选型 attilax总结
    test
    atitit.提取zip rar文件列表 java php c# 的原理与设计
    atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结
    Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结
    SQL2008附加数据库提示错误:5120
    C++函数转换成C#函数
    Nhibernate cookbook 3.0-翻译
    黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)
    给JavaScript初学者的24条最佳实践(转:http://www.cnblogs.com/yanhaijing/p/3465237.html)
  • 原文地址:https://www.cnblogs.com/hanxiaobei/p/9000597.html
Copyright © 2020-2023  润新知