deCloudflare/tool/block_cloudflare_mitm_fx/src/stop_cf_mitm.js

370 lines
58 KiB
JavaScript
Raw Normal View History

var cfaddon_isdone = 0;
var cf_ignore = [];
var cf_history = [];
var cf_dstarray = {};
var wl_autoclean = 0;
var stop_incapsula = 0;
var stop_gshield = 0;
var stop_sucuri = 0;
var ign_thirdparty = 0;
var do_markwhitelistsite = 0;
var do_reaction = 0;
var cfblockscreen = '';
var cf_blocked_img = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAAACwAAAAAAQABAAACAkQBADs=';
var cf_template_blocked = 'PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjx0aXRsZT5JbnNlY3VyZSBDb25uZWN0aW9uPC90aXRsZT48bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQo8bGluayBpZD0iZmF2aWNvbiIgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9ImRhdGE6aW1hZ2UveC1pY29uO2Jhc2U2NCxBQUFCQUFFQUVCQUFBQUVBSUFCb0JBQUFGZ0FBQUNnQUFBQVFBQUFBSUFBQUFBRUFJQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3prNE9LcE1Ta3E2VUU5UHVsUlRVN3BYVjFlNlcxdGJ1bDFkWGJwYlcxdTZXRmhZdWxWVlZicFRVMU82VUZCUXVreE1UTG90TFMyYkFBQUFPelkwTko3WTNOei92OXpoLzhIZTQvL0Q0ZWIveHVUcC84am02Ly9JNU9uL3grUG8vOGJqNmYvRTRlZi93dC9sLzhIZDQvKy8yZC8vM04vZi94a1pHWVUyTlRXZDJON2UveGVreGY4V3VlRC9GcnJoL3hhNzRmOFVyOVAvSWl3dS95SXNMdjhXczkvL0Y3RGUveGVyM1A4WHB0ci9JSlM2Lzk3ZzRmOFpHUm1DQUFBQVY5SFEwTzkxczd6L0Y4SGoveGJDNC84V3crVC9GTGJWL3lBckxmOGdLeTMvRnJyaC94YTEzLzhYc043L0ZxYlYvNUczdmYreHNiSFVBQUFBUlFBQUFDNW9aMmVWMk43Zi95V3R2LzhYeXViL0Zzcm0veGJKNXY4WnE4Zi9HYXZIL3hiQTQvOFd1K0gvRnJYZi96V2d1Zi9aMmRuL0x5OHZlQUFBQUJ3QUFBQUFBQUFBU3NiRnhkMmd5ODcvS3RUbS94blU2djhXME9qL0ZFSkkveFJDU1A4V3hlWC9Gci9qL3hXdzAvK3N3c1AvazVPVHRnQUFBRG9BQUFBQUFBQUFBQUFBQUNGRlJVVis2ZXZyL3pxMXZ2OHc1UEgvSjkvdi95SWlJdjhpSWlML0Zzcm0veGJFNVA5WHE3bi8xOWZYK0JrWkdXMEFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFQcmUydHNuQTN1RC9MTnJqL3kvbzh2OHJLeXYvS3lzci95dmI3djhtdmREL3hNL1AvM2QzZDZBQUFBQTBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlViR3h0dDhQRHcrRnJBdy84dTdQUC9ORFEwL3pRME5QOHczZS8vZ0x1Ly84akl5T2dBQUFCUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5KMmRuYlRTNCtUL0tkRFYvelE4UFA4MFFFSC9OTDNKLzlYWjJmOVdWbGFMQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBa0FBQUJYMzkvZjczM0V4djh0NXZIL0xkcnAvNXJCdy8rMnRyYlVBQUFBUlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTG0xdGJaWGY1dWIvTExuRC8wUzd4UC9kM2QzL01URXhlQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkt4OGZIM2JIUDBmKzh6TTMvbDVlWHRnQUFBRG9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJVEl5TW5hK3ZyN1RycTZ1eVJrWkdXMEFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYkFBQUFSQUFBQUQ0QUFBQVZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vOEFBSUFCQUFBQUFBQUFBQUFBQUlBQkFBQ0FBd0FBd0FNQUFPQUhBQURnQndBQThBOEFBUEFQQUFENEh3QUErRDhBQVB3L0FBRCtmd0FBLy84QUFBPT0iPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tQG5hbWVzcGFjZSBodG1sICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjtAbmFtZXNwYWNlIHh1bCAiaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCI7KnwqOnJvb3R7LS1pbi1jb250ZW50LXBhZ2UtY29sb3I6IzQyNGU1YTstLWluLWNvbnRlbnQtcGFnZS1iYWNrZ3JvdW5kOiNmYmZiZmI7LS1pbi1jb250ZW50LXRleHQtY29sb3I6IzMzMzstLWluLWNvbnRlbnQtc2VsZWN0ZWQtdGV4dDojZmZmOy0taW4tY29udGVudC1oZWFkZXItYm9yZGVyLWNvbG9yOiNjOGM4Yzg7LS1pbi1jb250ZW50LWJveC1iYWNrZ3JvdW5kOiNmZmY7LS1pbi1jb250ZW50LWJveC1iYWNrZ3JvdW5kLW9kZDojZjNmNmZhOy0taW4tY29udGVudC1ib3gtYmFja2dyb3VuZC1ob3ZlcjojZWJlYmViOy0taW4tY29udGVudC1ib3gtYmFja2dyb3VuZC1hY3RpdmU6I2RhZGFkYTstLWluLWNvbnRlbnQtYm94LWJvcmRlci1jb2xvcjojYzFjMWMxOy0taW4tY29udGVudC1pdGVtLWhvdmVyOnJnYmEoMCwxNDksMjIxLDAuMjUpOy0taW4tY29udGVudC1pdGVtLXNlbGVjdGVkOiMwMDk1ZGQ7LS1pbi1jb250ZW50LWJvcmRlci1oaWdobGlnaHQ6I2ZmOTUwMDstLWluLWNvbnRlbnQtYm9yZGVyLWZvY3VzOiMwMDk1ZGQ7LS1pbi1jb250ZW50LWJvcmRlci1jb2xvcjojYzFjMWMxOy0taW4tY29udGVudC1jYXRlZ29yeS10ZXh0OiNjMWMxYzE7LS1pbi1jb250ZW50LWNhdGVnb3J5LWJvcmRlci1mb2N1czoxcHggZG90dGVkICNmZmY7LS1pbi1jb250ZW50LWNhdGVnb3J5LXRleHQtc2VsZWN0ZWQ6I2YyZjJmMjstLWluLWNvbnRlbnQtY2F0ZWdvcnktYmFja2dyb3VuZDojNDI0ZjVhOy0taW4tY29udGVudC1jYXRlZ29yeS1iYWNrZ3JvdW5kLWhvdmVyOiM1ZTY5NzI7LS1pbi1jb250ZW50LWNhdGVnb3J5LWJhY2tncm91bmQtYWN0aXZlOiMzNDNmNDg7LS1pbi1jb250ZW50LXRhYi1jb2xvcjojNDI0ZjVhOy0taW4tY29udGVudC1saW5rLWNvbG9yOiMwMDk1ZGQ7LS1pbi1jb250ZW50LWxpbmstY29sb3ItaG92ZXI6IzE3OGNlNTstLWluLWNvbnRlbnQtbGluay1jb2xvci1hY3RpdmU6I2ZmOTUwMDstLWluLWNvbnRlbnQtbGluay1jb2xvci12aXNpdGVkOiM1NTFhOGI7LS1pbi1jb250ZW50LXByaW1hcnktYnV0dG9uLWJhY2tncm91bmQ6IzAwOTVkZDstLWluLWNvbnRlbnQtcHJpbWFyeS1idXR0b24tYmFja2dyb3VuZC1ob3ZlcjojMDA4YWNiOy0taW4tY29udGVudC1wcmltYXJ5LWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZTojMDA2YjlkOy0taW4tY29u
var cf_template_wlnotify = 'PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjx0aXRsZT5Hb29kIENvbm5lY3Rpb248L3RpdGxlPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCEtLUBuYW1lc3BhY2UgaHRtbCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7QG5hbWVzcGFjZSB4dWwgImh0dHA6Ly93d3cubW96aWxsYS5vcmcva2V5bWFzdGVyL2dhdGVrZWVwZXIvdGhlcmUuaXMub25seS54dWwiOyp8Kjpyb290ey0taW4tY29udGVudC1wYWdlLWNvbG9yOiM0MjRlNWE7LS1pbi1jb250ZW50LXBhZ2UtYmFja2dyb3VuZDojZmJmYmZiOy0taW4tY29udGVudC10ZXh0LWNvbG9yOiMzMzM7LS1pbi1jb250ZW50LXNlbGVjdGVkLXRleHQ6I2ZmZjstLWluLWNvbnRlbnQtaGVhZGVyLWJvcmRlci1jb2xvcjojYzhjOGM4Oy0taW4tY29udGVudC1ib3gtYmFja2dyb3VuZDojZmZmOy0taW4tY29udGVudC1ib3gtYmFja2dyb3VuZC1vZGQ6I2YzZjZmYTstLWluLWNvbnRlbnQtYm94LWJhY2tncm91bmQtaG92ZXI6I2ViZWJlYjstLWluLWNvbnRlbnQtYm94LWJhY2tncm91bmQtYWN0aXZlOiNkYWRhZGE7LS1pbi1jb250ZW50LWJveC1ib3JkZXItY29sb3I6I2MxYzFjMTstLWluLWNvbnRlbnQtaXRlbS1ob3ZlcjpyZ2JhKDAsMTQ5LDIyMSwwLjI1KTstLWluLWNvbnRlbnQtaXRlbS1zZWxlY3RlZDojMDA5NWRkOy0taW4tY29udGVudC1ib3JkZXItaGlnaGxpZ2h0OiNmZjk1MDA7LS1pbi1jb250ZW50LWJvcmRlci1mb2N1czojMDA5NWRkOy0taW4tY29udGVudC1ib3JkZXItY29sb3I6I2MxYzFjMTstLWluLWNvbnRlbnQtY2F0ZWdvcnktdGV4dDojYzFjMWMxOy0taW4tY29udGVudC1jYXRlZ29yeS1ib3JkZXItZm9jdXM6MXB4IGRvdHRlZCAjZmZmOy0taW4tY29udGVudC1jYXRlZ29yeS10ZXh0LXNlbGVjdGVkOiNmMmYyZjI7LS1pbi1jb250ZW50LWNhdGVnb3J5LWJhY2tncm91bmQ6IzQyNGY1YTstLWluLWNvbnRlbnQtY2F0ZWdvcnktYmFja2dyb3VuZC1ob3ZlcjojNWU2OTcyOy0taW4tY29udGVudC1jYXRlZ29yeS1iYWNrZ3JvdW5kLWFjdGl2ZTojMzQzZjQ4Oy0taW4tY29udGVudC10YWItY29sb3I6IzQyNGY1YTstLWluLWNvbnRlbnQtbGluay1jb2xvcjojMDA5NWRkOy0taW4tY29udGVudC1saW5rLWNvbG9yLWhvdmVyOiMxNzhjZTU7LS1pbi1jb250ZW50LWxpbmstY29sb3ItYWN0aXZlOiNmZjk1MDA7LS1pbi1jb250ZW50LWxpbmstY29sb3ItdmlzaXRlZDojNTUxYThiOy0taW4tY29udGVudC1wcmltYXJ5LWJ1dHRvbi1iYWNrZ3JvdW5kOiMwMDk1ZGQ7LS1pbi1jb250ZW50LXByaW1hcnktYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IzAwOGFjYjstLWluLWNvbnRlbnQtcHJpbWFyeS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmU6IzAwNmI5ZDstLWluLWNvbnRlbnQtdGFibGUtYm9yZGVyLWRhcmstY29sb3I6I2QxZDFkMTstLWluLWNvbnRlbnQtdGFibGUtaGVhZGVyLWJhY2tncm91bmQ6IzAwOTVkZH1odG1sfGh0bWwseHVsfHBhZ2UseHVsfHdpbmRvd3tmb250Om1lc3NhZ2UtYm94Oy1tb3otYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0taW4tY29udGVudC1wYWdlLWJhY2tncm91bmQpO2NvbG9yOnZhcigtLWluLWNvbnRlbnQtcGFnZS1jb2xvcil9aHRtbHxib2R5e2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW46MH1odG1sfGgxe2ZvbnQtc2l6ZToyLjVlbTtmb250LXdlaWdodDpsaWdodGVyO2xpbmUtaGVpZ2h0OjEuMjtjb2xvcjp2YXIoLS1pbi1jb250ZW50LXRleHQtY29sb3IpO21hcmdpbjowO21hcmdpbi1ib3R0b206LjVlbX1odG1sfGhye2JvcmRlci1zdHlsZTpzb2xpZCBub25lIG5vbmUgbm9uZTtib3JkZXItY29sb3I6dmFyKC0taW4tY29udGVudC1ib3JkZXItY29sb3IpfXh1bHxjYXB0aW9uey1tb3otYXBwZWFyYW5jZTpub25lO21hcmdpbjowfXh1bHxjYXB0aW9uPnh1bHxjaGVja2JveCx4dWx8Y2FwdGlvbj54dWx8bGFiZWx7Zm9udC1zaXplOjEuM3JlbTtmb250LXdlaWdodDpib2xkO2xpbmUtaGVpZ2h0OjIycHh9eHVsfGNhcHRpb24+eHVsfGNoZWNrYm94LHh1bHxjYXB0aW9uPnh1bHxsYWJlbHttYXJnaW46MCFpbXBvcnRhbnR9KnwqLm1haW4tY29udGVudHtwYWRkaW5nLXRvcDo0MHB4O3BhZGRpbmctaW5saW5lLWVuZDo0NHB4O3BhZGRpbmctYm90dG9tOjQ4cHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6NDhweDtvdmVyZmxvdzphdXRvfXh1bHxwcmVmcGFuZT54dWx8Ki5jb250ZW50LWJveHtvdmVyZmxvdzp2aXNpYmxlfXh1bHxncm91cGJveHstbW96LWFwcGVhcmFuY2U6bm9uZTtib3JkZXI6MDttYXJnaW46MTVweCAwIDA7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MDtwYWRkaW5nLWlubGluZS1lbmQ6MDtmb250LXNpemU6MS4yNXJlbX14dWx8Z3JvdXBib3ggeHVsfGxhYmVsOm5vdCgubWVudS1hY2NlbCk6bm90KC5tZW51LXRleHQpOm5vdCguaW5kZW50KSx4dWx8Z3JvdXBib3ggeHVsfGRlc2NyaXB0aW9ue21hcmdpbi1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1lbmQ6MCFpbXBvcnRhbnR9eHVsfHRhYnBhbmVsc3stbW96LWFwcGVhcmFuY2U6bm9uZTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoyMnB4O2JvcmRlcjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXR9eHVsfHRhYnN7bWFyZ2luLWJvdHRvbToxNXB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWluLWNvbnRlbnQtYm94LWJvcmRlci1jb2xvcik7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0taW4tY29udGVudC1ib3gtYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWluLWNvbnRlbnQtcGFnZS1iYWNrZ3JvdW5kKX14dWx8Ki50YWJzLWxlZnQseHVsfCoudGFicy1yaWdodHtib3JkZXItYm90dG9tOjB9eHVsfHRhYnstbW96LWFwcGVhcmFuY2U6bm9uZTttYXJnaW4tdG9wOjA7cGFkZGluZzo0cHggMjBweDttaW4taGVpZ2h0OjQ0cHg7Y29sb3I6dmFyKC0taW4tY29udGVudC1
function onError(e) {
console.log(`CFMITM Error:${e}`);
2018-01-02 04:42:22 +00:00
}
function whitelist_reload() {
browser.storage.local.get().then(function (w) {
if (w.myset_cfwhite) {
var tmp_whitelist = w.myset_cfwhite;
tmp_whitelist = tmp_whitelist.split("\n").filter(v => v != '');
cf_ignore = tmp_whitelist;
} else {
cf_ignore = [];
}
if (w.myset_xautoclean == 'y') {
wl_autoclean = 1;
} else {
wl_autoclean = 0;
}
if (w.myset_xincapsula == 'y') {
stop_incapsula = 1;
} else {
stop_incapsula = 0;
}
if (w.myset_xgshield == 'y') {
stop_gshield = 1;
} else {
stop_gshield = 0;
}
if (w.myset_xsucuri == 'y') {
stop_sucuri = 1;
} else {
stop_sucuri = 0;
}
if (w.myset_xign3p == 'y') {
ign_thirdparty = 1;
} else {
ign_thirdparty = 0;
}
if (w.myset_xwhitemark == 'y') {
do_markwhitelistsite = 1;
} else {
do_markwhitelistsite = 0;
}
if (w.myset_xsimplewarn) {
switch (w.myset_xsimplewarn) {
case 1:
do_reaction = 1;
break;
case 2:
do_reaction = 2;
break;
default:
do_reaction = 0;
break;
}
} else {
do_reaction = 0;
}
}, onError);
2018-01-02 04:42:22 +00:00
}
function is_domain_ignored(w) {
if (cf_ignore.includes(w)) {
return true;
}
var dotSTXfound = 0;
for (var f = 0; f < cf_ignore.length; f++) {
var _fv = cf_ignore[f];
if (!_fv.startsWith('.')) {
continue;
}
if (w == _fv.replace('.', '') || w.endsWith(_fv)) {
dotSTXfound = 1;
break;
}
}
if (dotSTXfound == 1) {
return true;
}
return false;
}
function analyzemydata(res) {
if (ign_thirdparty == 1) {
if (res.type != 'main_frame') {
return;
}
}
var cflink = document.createElement('a');
cflink.setAttribute('href', res.url);
var cf_hostname = cflink.hostname;
var cf_protocol = cflink.protocol;
var cf_gothead = res.responseHeaders;
var cf_tab_id = res.tabId;
cflink = null;
if (cf_hostname.endsWith('.cloudflare.com') || cf_hostname == 'cloudflare.com') {
return;
}
if (stop_incapsula == 1) {
if (cf_hostname.endsWith('.incapsula.com') || cf_hostname == 'incapsula.com') {
return;
}
}
if (stop_gshield == 1) {
if (cf_hostname.endsWith('.withgoogle.com') || cf_hostname.endsWith('.google.com')) {
return;
}
}
if (stop_sucuri == 1) {
if (cf_hostname.endsWith('.sucuri.net') || cf_hostname == 'sucuri.net') {
return;
}
}
if (cf_protocol != 'http:' && cf_protocol != 'https:') {
return;
}
if (cf_dstarray[cf_tab_id] == undefined) {
cf_dstarray[cf_tab_id] = [];
cf_dstarray[cf_tab_id]['cf'] = '';
cf_dstarray[cf_tab_id]['ok'] = '';
}
if (cf_hostname.length >= 4) {
var mitm_is = 0;
var mitm_cdnname = 'Cloudflare';
for (var i = 0; i < cf_gothead.length; i++) {
var cfv = cf_gothead[i];
var cfv_vname = cfv['name'];
if (cfv_vname != undefined) {
cfv_vname = cfv_vname.toLowerCase();
}
var cfv_vvalue = cfv['value'];
if (cfv_vvalue != undefined) {
cfv_vvalue = cfv_vvalue.toLowerCase();
}
if (cfv_vname == 'cf-ray' && cfv_vvalue != undefined) {
mitm_is = 1;
break;
}
if (cfv_vname == 'server' && cfv_vvalue.includes("cloudflare")) {
mitm_is = 1;
break;
}
if (cfv_vname == 'cf-cache-status' && cfv_vvalue != undefined) {
mitm_is = 1;
break;
}
if (cfv_vname == 'set-cookie' && cfv_vvalue.includes("__cfduid")) {
mitm_is = 1;
break;
}
if (stop_incapsula == 1) {
if (cfv_vname.includes("incap_") && cfv_vvalue != undefined) {
mitm_is = 1;
mitm_cdnname = 'Incapsula';
break;
}
if (cfv_vname == 'x-iinfo' && cfv_vvalue != undefined) {
mitm_is = 1;
mitm_cdnname = 'Incapsula';
break;
}
if (cfv_vname == 'x-cdn' && cfv_vvalue == 'incapsula') {
mitm_is = 1;
mitm_cdnname = 'Incapsula';
break;
}
if (cfv_vname == 'set-cookie' && cfv_vvalue.includes("visid_incap_")) {
mitm_is = 1;
mitm_cdnname = 'Incapsula';
break;
}
}
if (stop_gshield == 1) {
if (cfv_vname == 'server' && cfv_vvalue == 'shield') {
mitm_is = 1;
mitm_cdnname = 'Google Project Shield';
break;
}
if (cfv_vname == 'x-shield-request-id' && cfv_vvalue != undefined) {
mitm_is = 1;
mitm_cdnname = 'Google Project Shield';
break;
}
}
if (stop_sucuri == 1) {
if (cfv_vname == 'x-sucuri-cache' && cfv_vvalue != undefined) {
mitm_is = 1;
mitm_cdnname = 'Sucuri';
break;
}
if (cfv_vname == 'x-sucuri-id' && cfv_vvalue != undefined) {
mitm_is = 1;
mitm_cdnname = 'Sucuri';
break;
}
if (cfv_vname == 'set-cookie' && cfv_vvalue.includes("sucuri-")) {
mitm_is = 1;
mitm_cdnname = 'Sucuri';
break;
}
}
}
if (mitm_is == 1) {
if (is_domain_ignored(cf_hostname)) {
if (do_markwhitelistsite == 1) {
do_reaction = 1;
} else {
return;
}
}
if (cf_history.length >= 10) {
cf_history = [];
}
if (!cf_history.includes(cf_hostname)) {
cf_history.push(cf_hostname);
}
console.log('SECURITY_WARN: ' + mitm_cdnname + ' MiTM Detected: ' + res.url);
if (do_reaction == 0) {
if (res.type == 'main_frame') {
cf_dstarray[cf_tab_id]['cf'] = res.url.split('?', 2)[0];
}
if (cf_dstarray[cf_tab_id]['cf'].length < 12) {
cf_dstarray[cf_tab_id]['cf'] = '';
} //something wrong
if (cf_dstarray[cf_tab_id]['ok'].length < 12) {
cf_dstarray[cf_tab_id]['ok'] = 'https://searxes.danwin1210.me/';
} //better than google
cfblockscreen = atob(cf_template_blocked);
cfblockscreen = cfblockscreen.replace('%%CF_HOSTNAME%%', cf_hostname);
cfblockscreen = cfblockscreen.replace('%%CF_PRODNAME%%', mitm_cdnname);
cfblockscreen = cfblockscreen.replace('%%CF_WHITEPAIR%%', cf_hostname + '?' + btoa(cf_hostname));
cfblockscreen = cfblockscreen.replace('%%CF_URL_LASTOK%%', cf_dstarray[cf_tab_id]['ok']);
cfblockscreen = cfblockscreen.replace('%%CF_URL_ITSME%%', cf_dstarray[cf_tab_id]['cf']);
cfblockscreen = 'document.documentElement.innerHTML=atob(\'' + btoa(cfblockscreen) + '\');window.stop();';
var blockingCFnow = browser.tabs.executeScript(res.tabId, {
code: cfblockscreen
});
blockingCFnow.then(() => {
return {
cancel: true
};
}, onError);
}
if (do_reaction == 1) {
cfblockscreen = 'if (!document.title.startsWith(\'[!!\') && !document.title.includes(\'!!]\')){var orig_dt=document.title;var orig_lh=\'' + cf_hostname + '\';setInterval(function(){if (orig_lh==location.hostname){var link=document.querySelector("link[rel*=\'icon\']")||document.createElement(\'link\');link.type=\'image/x-icon\';link.rel=\'icon\';link.href=\'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzk4OKpMSkq6UE9PulRTU7pXV1e6W1tbul1dXbpbW1u6WFhYulVVVbpTU1O6UFBQukxMTLotLS2bAAAAOzY0NJ7Y3Nz/v9zh/8He4//D4eb/xuTp/8jm6//I5On/x+Po/8bj6f/E4ef/wt/l/8Hd4/+/2d//3N/f/xkZGYU2NTWd2N7e/xekxf8WueD/Frrh/xa74f8Ur9P/Iiwu/yIsLv8Ws9//F7De/xer3P8Xptr/IJS6/97g4f8ZGRmCAAAAV9HQ0O91s7z/F8Hj/xbC4/8Ww+T/FLbV/yArLf8gKy3/Frrh/xa13/8XsN7/FqbV/5G3vf+xsbHUAAAARQAAAC5oZ2eV2N7f/yWtv/8Xyub/Fsrm/xbJ5v8Zq8f/GavH/xbA4/8Wu+H/FrXf/zWguf/Z2dn/Ly8veAAAABwAAAAAAAAASsbFxd2gy87/KtTm/xnU6v8W0Oj/FEJI/xRCSP8WxeX/Fr/j/xWw0/+swsP/k5OTtgAAADoAAAAAAAAAAAAAACFFRUV+6evr/zq1vv8w5PH/J9/v/yIiIv8iIiL/Fsrm/xbE5P9Xq7n/19fX+BkZGW0AAAAKAAAAAAAAAAAAAAAAAAAAPre2tsnA3uD/LNrj/y/o8v8rKyv/Kysr/yvb7v8mvdD/xM/P/3d3d6AAAAA0AAAAAAAAAAAAAAAAAAAAAAAAABUbGxtt8PDw+FrAw/8u7PP/NDQ0/zQ0NP8w3e//gLu//8jIyOgAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANJ2dnbTS4+T/KdDV/zQ8PP80QEH/NL3J/9XZ2f9WVlaLAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAABX39/f733Exv8t5vH/Ldrp/5rBw/+2trbUAAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALm1tbZXf5ub/LLnD/0S7xP/d3d3/MTExeAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKx8fH3bHP0f+8zM3/l5eXtgAAADoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITIyMna+vr7Trq6uyRkZGW0AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAARAAAAD4AAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAIABAAAAAAAAAAAAAIABAACAAwAAwAMAAOAHAADgBwAA8A8AAPAPAAD4HwAA+D8AAPw/AAD+fwAA//8AAA==\';document.getElementsByTagName(\'head\')[0].appendChild(link);document.body.style="border: 4px dashed #f0d000";if (!document.title.startsWith(\'[!!\') && !document.title.includes(\'!!]\')){document.title=\'[!!' + mitm_cdnname + '!!] \'+orig_dt;}}},2500);}';
var warningCFnow = browser.tabs.executeScript(res.tabId, {
code: cfblockscreen
});
warningCFnow.then(function () {}, onError);
}
if (do_reaction == 2) {
if (res.type == 'image') {
return {
redirectUrl: cf_blocked_img
};
} else {
if (res.type == 'main_frame') {
return {
redirectUrl: 'https://0.0.0.0/'
};
} else {
return {
cancel: true
};
}
}
}
} else {
if (res.type == 'main_frame') {
if (do_reaction == 0) {
cf_dstarray[cf_tab_id]['ok'] = res.url;
} //used by warning page
if (cf_ignore.includes(cf_hostname) && cf_gothead.length > 3) {
if (wl_autoclean == 1) {
cfblockscreen = atob(cf_template_wlnotify);
cfblockscreen = cfblockscreen.replace('%%CF_HOSTNAME%%', cf_hostname);
cfblockscreen = cfblockscreen.replace('%%CF_HOSTNAME%%', cf_hostname);
cfblockscreen = 'document.documentElement.innerHTML=atob(\'' + btoa(cfblockscreen) + '\');window.stop();';
var nomoreCFnow = browser.tabs.executeScript(res.tabId, {
code: cfblockscreen
});
nomoreCFnow.then(() => {
console.log('SECURITY_INFO: Removing from whitelist: ' + cf_hostname);
var _wi = cf_ignore.indexOf(cf_hostname);
if (_wi > -1) {
cf_ignore.splice(_wi, 1);
}
browser.storage.local.set({
myset_cfwhite: cf_ignore.join("\n")
});
return {
cancel: true
};
}, onError);
}
}
}
}
}
return;
}
function gotwhitelistrequest(r) {
var v_whitelist = r.url.replace('https://0.0.0.0/cfmitm_addon/allow/', '', ).split('?', 2);
if (v_whitelist.length == 2) {
if (v_whitelist[0] == 'viewexceptions' && v_whitelist[1] == 'now') {
browser.runtime.openOptionsPage().then(function () {}, onError);
}
if (v_whitelist[0] == 'reload' && v_whitelist[1] == 'now') {
browser.tabs.reload({
bypassCache: true
});
}
if (/^([0-9a-z.-]{4,200})$/.test(v_whitelist[0]) && v_whitelist[1] == btoa(v_whitelist[0])) { //cfinfection?originhash
if (cf_history.includes(v_whitelist[0])) {
if (!cf_ignore.includes(v_whitelist[0])) { // found in history and rule not found
console.log('CFMITM: Adding to whitelist: ' + v_whitelist[0]);
cf_ignore.push(v_whitelist[0]);
browser.storage.local.set({
myset_cfwhite: cf_ignore.join("\n")
}).then(function () {
browser.tabs.executeScript({
code: 'location.reload();'
});
}, onError);
}
}
}
}
return {
cancel: true
};
}
if (cfaddon_isdone == 0) {
cfaddon_isdone = 1;
whitelist_reload();
}
browser.webRequest.onHeadersReceived.addListener(analyzemydata, {
urls: ["http://*/*", "https://*/*"]
}, ["blocking", "responseHeaders"]);
browser.webRequest.onBeforeRequest.addListener(gotwhitelistrequest, {
urls: ["https://0.0.0.0/cfmitm_addon/*"]
}, ["blocking"]);
browser.runtime.onMessage.addListener(function (r, s, sr) {
if (r.relnow != undefined) {
whitelist_reload();
sr({
response: 'ok'
});
};
return true;
});
browser.browserAction.onClicked.addListener(function (t) {
browser.runtime.openOptionsPage().then(function () {}, onError);
});
browser.tabs.onRemoved.addListener(function (t, r) {
cf_dstarray[t] = [];
delete cf_dstarray[t];
});