2017-05-13 64 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