2017-06-17 2 views
0

Je dois lancer fiddler automatiquement pour analyser les requêtes https.Comment démarrer fiddler en tant que proxy https à partir de la ligne de commande?

Comment forcer fiddler à générer et utiliser un certificat ssl sans interface graphique? Est-ce que quelqu'un sait où fiddler stocke son certificat? Puis-je générer mon propre certificat de serveur et le définir sur fiddler sans interface graphique?

Je peux démarrer le violoneur en mode de fermeture. Je peux activer https via les clés de registre, mais fiddler démarre sans certificat SSL. Je peux créer un certificat en utilisant makecert.exe, mais je ne sais pas comment le définir comme certificat actif pour fiddler sans interface utilisateur.

Je serais très reconnaissant si quelqu'un m'aide à le résoudre.

+0

Stack Overflow est un site pour les questions de programmation et de développement. Cette question semble être hors sujet car elle ne fait pas partie de la portée définie dans le centre d'aide. Voir [Quels sujets puis-je poser à ce sujet?] (Http://stackoverflow.com/help/on-topic) dans le centre d'aide. Peut-être [Super User] (http://superuser.com/) ou [Reverse Engineering Stack Exchange] (http://reverseengineering.stackexchange.com/) serait un meilleur endroit à demander. – jww

+0

Je développe une application qui utilise fiddler. C'est une partie de l'application. J'ai essayé de trouver la réponse sans beaucoup de succès. Je lis [Quels sujets puis-je poser à propos ici] (https://stackoverflow.com/help/on-topic). Le violoniste est un "outil logiciel couramment utilisé par les programmeurs". Je ne vois aucune divergence. –

+0

Btw vous pouvez trouver beaucoup de questions sur le violon ici sur le stackoverflow. –

Répondre

0

Personne ne m'aide, mais j'ai trouvé une solution.

La solution:

Pour activer la capture les valeurs de registre de mise à jour https de trafic:

reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v CaptureCONNECT /t REG_SZ /d True /f 
reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v CaptureHTTPS /t REG_SZ /d True /f 
reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v IgnoreServerCertErrors /t REG_SZ /d True /f 

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v CaptureCONNECT /t REG_SZ /d True /f 
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v CaptureHTTPS /t REG_SZ /d True /f 
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v IgnoreServerCertErrors /t REG_SZ /d True /f 

Vous devez utiliser le script Fiddler personnalisé. Il force le fiddler à générer un certificat ssl (Veuillez vous reporter à la section principale du script CustomRules.js ci-dessous). Si vous ne l'ajoutez pas, fiddler commencera sans certificat SSL.

copy /Y /V "<path to file>\CustomRules.js" "%userprofile%\Documents\Fiddler2\Scripts\CustomRules.js" 

Remarque: ne modifiez pas le nom du fichier de destination.

Quand Fiddler commence à automaticaly attache à la prise 127.0.0.1:8888

start "" "%programfiles(x86)%\fiddler2\fiddler.exe" -quiet 

Le Fiddler crée automatiquement un nouveau certificat ssl. Il peut être téléchargé:

curl.exe -s -k -o <dst file path> "http://127.0.0.1:8888/FiddlerRoot.cer" 

Ensuite, vous devez l'ajouter à la racine de confiance Certificats

certutil -addstore -f "Root" <path to certificate> 

Maintenant, le fiddelr est démarré et peut capturer https trafic useing CustomRules.js.

Fiddler.bat:

@ECHO OFF 

set currentDir=%~dp0 
cd "%currentDir%" 

set log="%currentDir%\fiddler.log" 
set fiddler_custom_script_dir="%userprofile%\Documents\Fiddler2\Scripts\" 
set fiddler_result_dir="C:\fiddler\" 

echo "Start Fiddler Script" > "%log%" 
echo "Current Dir: %currentDir%" >> "%log%" 
echo "Update values in the register" >> "%log%" 
reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v CaptureCONNECT /t REG_SZ /d True /f >> "%log%" 
reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v CaptureHTTPS /t REG_SZ /d True /f >> "%log%" 
reg.exe add "HKEY_LOCAL_MACHINE\Software\Microsoft\Fiddler2" /v IgnoreServerCertErrors /t REG_SZ /d True /f >> "%log%" 

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v CaptureCONNECT /t REG_SZ /d True /f >> "%log%" 
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v CaptureHTTPS /t REG_SZ /d True /f >> "%log%" 
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Fiddler2" /v IgnoreServerCertErrors /t REG_SZ /d True /f >> "%log%" 

echo "Create folder for results: %fiddler_result_dir%" >> "%log%" 
mkdir "%fiddler_result_dir%" >> "%log%" 

echo "Create folder for the custom fiddler's script: %fiddler_custom_script_dir%" >> "%log%" 
mkdir "%fiddler_custom_script_dir%" >> "%log%" 

echo "Copy fiddler script to %fiddler_custom_script_dir%" >> "%log%" 
copy /Y /V "%currentDir%\CustomRules.js" "%fiddler_custom_script_dir%\CustomRules.js" >> "%log%" 

echo "Start fiddler" >> "%log%" 
start "" "%programfiles(x86)%\fiddler2\fiddler.exe" -quiet 

set cert_path="%currentDir%\FiddlerRoot.cer" 
set /a attempt=0 

timeout 10 > nul 

:get_cert 
    set /a attempt+=1 
    timeout 1 > nul 
    echo "Attempt #%attempt% to download fiddeler's certificate" >> "%log%" 
    curl.exe -s -k -o "%cert_path%" "http://127.0.0.1:8888/FiddlerRoot.cer" >> "%log%" 
if not exist "%cert_path%" if %attempt% LSS 300 goto get_cert 

if not exist "%cert_path%" (
    echo "FAIL. Certificate "%cert_path%" doesn't exist. Cannot set trusted certificate" >> "%log%" 
    exit /b -100 
) 

set /a attempt=0 
echo "Try to add certificate to trusted" >> "%log%" 
echo certutil -addstore -f "Root" %cert_path% >> "%log%" 
:import_cert 
    set /a attempt+=1 
    timeout 1 > nul 
    echo "Attempt #%attempt% to download fiddeler's certificate" >> "%log%" 
    certutil -addstore -f "Root" %cert_path% >> "%log%" 
if "%errorlevel%" LSS 0 if %attempt% LSS 3 goto import_cert 

echo "End..." >> "%log%" 
exit /b 0 

CustomRules.js

import System; 
import System.Windows.Forms; 
import Fiddler; 

/** 
This script must be in the folder C:\Users\<USER>\Documents\Fiddler2\Scripts\CustomRules.js 
*/ 
class Handlers 
{ 
    // The Main() function runs everytime your FiddlerScript compiles 
    static function Main() { 
     var today: Date = new Date(); 
     FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today; 
     CertMaker.createRootCert(); 
     //CertMaker.GetRootCertificate().GetPublicKeyString() 
    } 
}