zoukankan      html  css  js  c++  java
  • CSRF代码审计

    token原理(dvwa)

    首先对应的index.php页面会调用对应级别的页面(high.php)。
    high.php里面有:
    //Generate Anti-CSRF token
    generateSessionToken();
    这样就在index.php页面生成了个token。
    跟进核心函数库看一下这个函数:
    function genrateSessinoToken(){
    if(isset($_SESSION['session_token'])){
    destroySessionToken();
    }
    $_SESSION['session_token']=md5(uniqid());
    }
    function destroySessionToken(){
    unset($_SESSION['session_token']);
    }
    然后生成了一个session_token
    然后又使用tokenField(),增加一个隐藏字段
    function tokenField(){
    return "<input type='hidden' name='user_token' value'{$_SESSION['session_token']}' />";
    }
    接下来就是在high.php页面的GET['Change']请求中进行判断
    checkToken($_REQUEST['user_token'],$_SESSION['session_token'],'index.php');
    function checkToken($user_token,$session_token,$return_url){
    if($user_token!==$session_token||!isset($session_token)){
    dvwaMessagePush('CSRF token is incorrect');
    dvwaRedirect($returnURL);
    }
    }

    找准对应漏洞位置


    利用burp的功能Generate CSRF PoC的功能生成HTML代码

    利用短域名伪装

    然后引诱管理员访问
    这里结合XSS漏洞更好。

  • 相关阅读:
    Jersey的异常处理
    REST响应处理
    jersey REST的接口简述
    Firebird 同一字段的多行合并为一行
    Firebird/InterBase内置函数使用说明
    发布FireBird数据库所需要DLL文件
    unidac连接FireBird数据库
    打开与关闭Linux防火墙
    Linux FTP 命令
    Linux 命令修改系统时间
  • 原文地址:https://www.cnblogs.com/lyxsalyd/p/12551493.html
Copyright © 2011-2022 走看看