Last active
September 21, 2016 17:31
-
-
Save hasegawayosuke/71729d508f903a7dd42e to your computer and use it in GitHub Desktop.
保存されている複数のバージョンのうち最新のburpを起動する。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@if(0)==(0) echo off | |
rem 引数無しで起動すると C:\Program Files (x86)\Burp\ に保存されている複数のburpから最新のburp*.jarを実行する。 | |
rem 引数 update を付与して起動すると、PortSwigerから最新のフリー版のburpをダウンロードしC:\Program Files (x86)\Burp\ に保存する | |
setlocal | |
setlocal ENABLEDELAYEDEXPANSION | |
set burp=0 | |
if /I "%1" == "update" goto UPDATE | |
for %%a in ( "C:\Program Files (x86)\Burp\*.jar" ) do ( | |
set x=%%~na | |
if !burp! lss !x! set burp=!x! | |
) | |
echo !burp! | |
java -jar -Xmx1024m "C:\Program Files (x86)\burp\!burp!.jar | |
GOTO :eof | |
:UPDATE | |
cscript.exe //nologo //e:jscript "%~f0" %* | |
goto :eof | |
@end | |
var log = (function(){ | |
if( /\\cscript.exe$/i.test( WScript.FullName ) ){ | |
return function(){ | |
var s = ""; | |
for( var i = 0; i < arguments.length; i++ ){ | |
if( i ) s += " "; | |
s += arguments[ i ]; | |
} | |
WScript.Echo( s ); | |
}; | |
} | |
return function(){}; | |
})(); | |
var url = "https://portswigger.net/DownloadUpdate.ashx?Product=Free"; | |
function download( url, dir ){ | |
var xhr, stream, filename = "download." + ~~new Date() + ".bin"; | |
try{ | |
log( "Trying to download:" + url ); | |
xhr = new ActiveXObject( "MSXML2.ServerXMLHTTP" ); | |
xhr.open( "GET", url, false ); | |
//xhr.setProxy( 2, "localhost:8888", "" ); | |
//xhr.setOption( 2, 13056 ); | |
xhr.setRequestHeader( "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"); | |
xhr.send( null ); | |
if( xhr.status !== 200 ){ | |
WScript.Echo( "fail to download. status=" + xhr.status + " " + xhr.statusText ); | |
return ""; | |
} | |
log( "Succeed to download." ); | |
var cd = xhr.getResponseHeader( "Content-disposition" ); | |
if( cd ){ | |
var m = /^\s*attachment;\s*filename=(.*)$/.exec( cd ); | |
if( m && m[ 1 ] ){ | |
filename = ( m[ 1 ] + "" ).replace( /\\\/\:\*\?\"\<\>\|/g, "_" ); | |
} | |
} | |
log( "filename is " + filename ); | |
log( "copying to " + dir ); | |
stream = new ActiveXObject( "ADODB.Stream" ); | |
stream.Open(); | |
stream.Type = 1; // binary | |
stream.Write( xhr.responseBody ); | |
stream.SaveToFile( dir + "\\" + filename, 2 ); // 2 is overwrite | |
stream.Close(); | |
return filename; | |
}catch( e ){ | |
WScript.Echo( "Error:" + e.message ); | |
} | |
return ""; | |
} | |
function update(){ | |
var shell = new ActiveXObject( "WScript.Shell" ); | |
var tmp = shell.ExpandEnvironmentStrings( "%TEMP%" ); | |
var filename = download( url, tmp ); | |
var fso = new ActiveXObject( "Scripting.FileSystemObject" ); | |
if( filename ){ | |
try{ | |
fso.CopyFile( tmp + "\\" + filename, "C:\\Program Files (x86)\\burp\\", false ); | |
WScript.Echo( "Suceed to update:" + filename ); | |
fso.DeleteFile( tmp + "\\" + filename ); | |
}catch( e ){ | |
WScript.Echo( "failed to copy file to Program Files folder. " + e.message ); | |
} | |
}; | |
} | |
(function(){ | |
for( var i = 0; i < WScript.Arguments.length; i++ ){ | |
if( WScript.Arguments.Item( i ) === "update" ){ | |
update(); | |
break; | |
} | |
} | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment