2017-05-13 47 views
0

我试图让一个双语因素认证(双语)认证的双语攻击者工作。每次我发送一个POST来尝试身份验证,它都会以400(错误请求)失败。以下是我试过的最新版本的代码:双因素认证(Duo)的双语攻击(二)

use Goutte\Client; 

    $client = new Client(); 

    $res = $client->request('POST', 'https://example.com/cosign.cgi', [ 
     'body' => 'login=theuser&password=thepassword&service=theservice&passcode=8675309', 
    ]); 

返回的错误页面的正文说明需要启用cookie。然而,在$ client中启用了cookie。

回答

1

https://example.com/cosign.cgi” - 可能是DSA(CoSign)API的封装。请揭示背后的代码。关于登录时如何使用双因素身份验证:有关DSA API的完整信息,请参阅DSA Programmer GuideDSA Developer Center。 RESTFull API是在DSA v8.2 +中引入的。以下是一个示例:

<?php 
$request = new HttpRequest(); 
$request->setUrl('https://cosign:8081/sapiws/v1/digital_signature'); 
$request->setMethod(HTTP_METH_PUT); 
$request->setHeaders(array('postman-token' => 'c37705a2-4e8a-eb47-fcbe-62568507717b', 
          'cache-control' => 'no-cache', 
          'content-type' => 'application/json', 
          'authorization' => 'Basic YXZpdjoxMjM0NTY3OEFi')); 
$request->setBody('{ "signField" : {"file":"BASE64PDFContent", 
            "FileType": "PDF", 
            "signPassword": "password", 
            "signPasswordType": "STRING" 
            } 
        }'); 
try { 
     $response = $request->send(); 
     echo $response->getBody(); 
    } 
    catch (HttpException $ex) { 
    echo $ex; 
} 

插入密码以登录到基本授权标头中的DSA签署者帐户。将OTP插入正文“signPassword”字段中。

用正确公开的设备DNS替换cosign占位符https://cosign:8081/sapiws/v1/digital_signature