Skip to content

Instantly share code, notes, and snippets.

@hasegawayosuke
Last active September 21, 2016 17:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hasegawayosuke/71729d508f903a7dd42e to your computer and use it in GitHub Desktop.
Save hasegawayosuke/71729d508f903a7dd42e to your computer and use it in GitHub Desktop.
保存されている複数のバージョンのうち最新のburpを起動する。
@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