From 7d95873edb1a124a887bac4f7c6020bd262e9d8d Mon Sep 17 00:00:00 2001 From: ResidualLaugh <1015796131@qq.com> Date: Sun, 19 Jun 2022 18:13:38 +0800 Subject: [PATCH] ver:2.0.8 (#18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [2.0.8]-2022-06-18 感谢mdkk对此版本的建议 感谢NeeSung对UI的建议 ### 添加 - 新增了webhook配置页,当后台服务处理完成后,将数据发送到指定api - 新增了可拖拽的全局悬浮窗,可在配置页控制开关 - 新增了处理进度展示 ### 变更 - 将manifest_version升级到了3 - 优化了UI ### 修复 - 尝试修复了部分数据提取不到的问题 --- CHANGELOG.md | 14 +++ background.js | 183 ++++++++++++++++++++-------- content.js | 283 ++++++++++++++++++++++++++++++++++++++++---- jquery-3.6.0.min.js | 2 - manifest.json | 17 ++- popup.html | 59 ++++++--- popup.js | 91 +++++++++----- settings.html | 63 ++++++++++ settings.js | 41 +++++++ 9 files changed, 626 insertions(+), 127 deletions(-) delete mode 100644 jquery-3.6.0.min.js create mode 100644 settings.html create mode 100644 settings.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 05b26ee..1651e90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,21 @@ # 变更日志 此项目的所有显著更改将记录在此文件中。 +## [2.0.8]-2022-06-18 +感谢mdkk对此版本的建议 +感谢NeeSung对UI的建议 +### 添加 +- 新增了webhook配置页,当后台服务处理完成后,将数据发送到指定api +- 新增了可拖拽的全局悬浮窗,可在配置页控制开关 +- 新增了处理进度展示 +### 变更 +- 将manifest_version升级到了3 +- 优化了UI +### 修复 +- 尝试修复了部分数据提取不到的问题 + ## [2.0.7]-2022-05-26 +感谢0cat对此版本的建议 ### 添加 - 新增了通过关键词提取部分敏感数据,使用了nuclei的规则,感谢开源。https://github.com/projectdiscovery/nuclei-templates/blob/master/exposures/tokens/generic/credentials-disclosure.yaml - 新增了复制功能,一键复制该区域结果 diff --git a/background.js b/background.js index 19be113..134e865 100755 --- a/background.js +++ b/background.js @@ -694,7 +694,10 @@ var nuclei_regex = [ /["']?account[_-]?sid["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, /["']?access[_-]?token["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, /["']?access[_-]?secret["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, - /["']?access[_-]?key[_-]?secret["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi + /["']?access[_-]?key[_-]?secret["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, + /["']?account["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, + /["']?password["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi, + /["']?username["']?[^\S\r\n]*[=:][^\S\r\n]*["']?[\w-]+["']?/gi ] function get_js(){ @@ -780,8 +783,9 @@ function get_secret(data) { result.push(tmp_result[i]); } } - + } + // console.log(data); // console.log(result); // console.timeEnd(); return result; @@ -807,57 +811,140 @@ function extract_info(data) { return extract_data; } -chrome.runtime.onMessage.addListener( - function(request, sender, sendResponse) { - if (request.greeting == "result"){ - var tmp_data = request.data; - tmp_data = extract_info(tmp_data); - tmp_data['current'] = request.current; +var myHeaders = new Headers(); +myHeaders.append('accept', '*/*'); +var myInit = { method: 'GET', + headers: myHeaders, + mode: 'cors', + cache: 'default', + credentials: 'include' +}; - //遍历所有数据类型 - for (var i = 0; i < key.length; i++) { - //如果传入的数据没有这个类型,就看下一个 - if (tmp_data[key[i]] == null){ - continue; - } - // 把前端的处理放到这里避免重复 - if (not_sub_key.indexOf(key[i])<0){ - tmp_data[key[i]] = sub_1(tmp_data[key[i]]) +function webhook(data) { + // console.log(search_data[data]); + data = JSON.stringify(search_data[data]); + // console.log(data); + chrome.storage.local.get(["webhook_setting"], function(settings){ + if(settings["webhook_setting"] == {}){ + console.log('获取webhook_setting失败'); + return; } - //如果search_data有历史数据,进行检查 - if (tmp_data['current'] in search_data){ - for (var j = 0; j < key.length; j++) { - if (search_data[tmp_data['current']][key[j]]!=null){ - tmp_data[key[i]] = jiaoji(unique(tmp_data[key[i]]),find(unique(tmp_data[key[i]]),search_data[tmp_data['current']][key[j]])) + + let webhookInit = { method: 'GET', + mode: 'cors', + cache: 'default', + credentials: 'include' + }; + let webhookHeaders = new Headers(); + if (settings["webhook_setting"]['url']!="") { + var url = settings["webhook_setting"]['url']; + if (settings["webhook_setting"]['method']=="GET"){ + url = url + "?" + settings["webhook_setting"]['arg'] + "=" + data; + }else if (settings["webhook_setting"]['method']=="POST"){ + webhookHeaders.append("Content-Type", "application/json"); + webhookInit['method'] = "POST"; + if (settings["webhook_setting"]['arg']!=""){ + webhookInit['body'] = settings["webhook_setting"]['arg'] + "=" + data + }else{ + webhookInit['body'] = data; + } + }else{ + console.log("webhook method error:"+settings["webhook_setting"]['method']); } - } - }else{ - search_data[tmp_data['current']] = {} + if (settings["webhook_setting"]['headers']!={}){ + for (let i in settings["webhook_setting"]['headers']) { + webhookHeaders.append(i,settings["webhook_setting"]['headers'][i]); + } + } + webhookInit["headers"] = webhookHeaders; + let webhookRequest = new Request(url, webhookInit); + // console.log(webhookRequest); + fetch(webhookRequest, webhookInit).then(function(response) { + // console.log(response); + }); } - if (tmp_data['current'] in search_data && search_data[tmp_data['current']][key[i]]!=null ){ - var search_data_value = unique(add(search_data[tmp_data['current']][key[i]],tmp_data[key[i]])).sort() - if ('static' in search_data[tmp_data['current']]){ - var res = collect_static(search_data_value,search_data[tmp_data['current']]['static']) - }else{ - var res = collect_static(search_data_value,[]) - } - search_data[tmp_data['current']][key[i]] = res['arr1'] - search_data[tmp_data['current']]['static'] = res['static'] + }); +} + +chrome.runtime.onMessage.addListener( + function(request, sender, sendResponse) { + if (request.greeting == "find"){ + // console.log(request.data); + if(request.current in search_data){ + search_data[request.current]['done'] = ''; + search_data[request.current]['tasklist'] = []; + search_data[request.current]['donetasklist'] = []; }else{ - var search_data_value = unique(tmp_data[key[i]]).sort() - if ('static' in search_data[tmp_data['current']]){ - var res = collect_static(search_data_value,search_data[tmp_data['current']]['static']) - }else{ - var res = collect_static(search_data_value,[]) - } - search_data[tmp_data['current']]['static'] = res['static'] - search_data[tmp_data['current']][key[i]] = res['arr1'] + search_data[request.current] = {'current':request.current, 'tasklist': [], 'donetasklist': []}; } - } + let promiseTask = []; + for (var i = request.data.length - 1; i >= 0; i--) { + try{ + var myRequest = new Request(request.data[i], myInit); + } + catch (e){ + continue; + } + search_data[request.current]['tasklist'].push(0); + let p = fetch(myRequest,myInit).then(function(response) { + // console.log(response); + response.text().then(function(text) { + // console.log(text); + var tmp_data=text; + tmp_data = extract_info(tmp_data); + tmp_data['current'] = request.current; + + //遍历所有数据类型 + for (var i = 0; i < key.length; i++) { + //如果传入的数据没有这个类型,就看下一个 + if (tmp_data[key[i]] == null){ + continue; + } + // 把前端的处理放到这里避免重复 + if (not_sub_key.indexOf(key[i])<0){ + tmp_data[key[i]] = sub_1(tmp_data[key[i]]) + } + //如果search_data有历史数据,进行检查 + if (tmp_data['current'] in search_data){ + for (var j = 0; j < key.length; j++) { + if (search_data[tmp_data['current']][key[j]]!=null){ + tmp_data[key[i]] = jiaoji(unique(tmp_data[key[i]]),find(unique(tmp_data[key[i]]),search_data[tmp_data['current']][key[j]])) + } + } + } + if (tmp_data['current'] in search_data && search_data[tmp_data['current']][key[i]]!=null ){ + var search_data_value = unique(add(search_data[tmp_data['current']][key[i]],tmp_data[key[i]])).sort() + if ('static' in search_data[tmp_data['current']]){ + var res = collect_static(search_data_value,search_data[tmp_data['current']]['static']) + }else{ + var res = collect_static(search_data_value,[]) + } + search_data[tmp_data['current']][key[i]] = res['arr1'] + search_data[tmp_data['current']]['static'] = res['static'] + }else{ + var search_data_value = unique(tmp_data[key[i]]).sort() + if ('static' in search_data[tmp_data['current']]){ + var res = collect_static(search_data_value,search_data[tmp_data['current']]['static']) + }else{ + var res = collect_static(search_data_value,[]) + } + search_data[tmp_data['current']]['static'] = res['static'] + search_data[tmp_data['current']][key[i]] = res['arr1'] + } + } + search_data[request.current]['donetasklist'].push(0); + }); + }); + promiseTask.push(p); + } + Promise.all(promiseTask).then(function() { + webhook(request.current); + search_data[request.current]['done'] = 'done'; + }); + // console.log(JSON.stringify(search_data)); + return true; + }else if(request.greeting == "get"){ + sendResponse(search_data[request.current]); + return true; } }); - - -function result(host){ - return search_data[host]; -} diff --git a/content.js b/content.js index 3aed81d..9eae9a3 100755 --- a/content.js +++ b/content.js @@ -8,13 +8,13 @@ var hostPath; var urlPath; var urlWhiteList = ['google.com']; + var target_list = []; for(var i = 0;i < urlWhiteList.length;i++){ if(host.indexOf(urlWhiteList[i]) != -1){ return false; } } - - findsomething(window.location.href); + target_list.push(window.location.href); var source_href = source.match(/href=['"].*?['"]/g); var source_src = source.match(/src=['"].*?['"]/g); @@ -24,7 +24,7 @@ for(var i=0;i0){ @@ -50,12 +52,7 @@ if(u.indexOf(".js")=='-1' && !is_script(u)){ return ; }else if(u.substring(0,4)=="http"){ - if(u.indexOf('?')!='-1'){ - return u.substring(0,u.indexOf('?')); - } - else{ - return u; - } + return u; } else if(u.substring(0,2)=="//"){ return protocol+u; @@ -64,25 +61,27 @@ return protocol+'//'+host+u; } else if(u.substring(0,2)=='./'){ - tmp_href = href.substring(0,href.indexOf('#')) + if (href.indexOf('#')>0) { + tmp_href = href.substring(0,href.indexOf('#')) + }else{ + tmp_href = href; + } return tmp_href.substring(0,tmp_href.lastIndexOf('/')+1)+u; }else{ // console.log("not match prefix:"+u+",like http // / ./") - tmp_href = href.substring(0,href.indexOf('#')) + if (href.indexOf('#')>0) { + tmp_href = href.substring(0,href.indexOf('#')) + }else{ + tmp_href = href; + } return tmp_href.substring(0,tmp_href.lastIndexOf('/')+1)+u; } } function findsomething(url){ - $.ajax({ - url: url, - type: 'get', - dataType: 'text', - }) - .done(function(data) { - chrome.extension.sendMessage({greeting: "result",data: data, current: href}, function(response) { } ); - }) + // console.log(url); + chrome.runtime.sendMessage({greeting: "result",data: url, current: href, url:url}, function(response) { } ); return ; } function show(url,something){ @@ -94,3 +93,247 @@ } } })() + + +chrome.storage.local.get(["global_float"], function(settings){ + console.log(settings); + if (settings["global_float"]!=true){ + return + } + console.log(settings["global_float"]); + console.log("findsomething-divglobal_float"); + // 使用自定义标签 + const body = document.getElementsByTagName('html')[0]; + const div = document.createElement('div'); + div.setAttribute("id","findsomething-float-div"); + div.innerHTML = ` + + + + 隐藏 + + + IP + 🈚️ + IP_PORT + 🈚️ + 域名 + 🈚️ + 身份证 + 🈚️ + 手机号 + 🈚️ + 邮箱 + 🈚️ + JWT + 🈚️ + 算法 + 🈚️ + Secret + 🈚️ + Path + 🈚️ + IncompletePath + 🈚️ + Url + 🈚️ + StaticUrl + 🈚️ + + + + ` + body.appendChild(div) + var neko = document.querySelector('#neko'); + var nekoW = neko.offsetWidth; + var nekoH = neko.offsetHeight; + var cuntW = 0; + var cuntH = 0; + neko.style.left = parseInt(document.body.offsetWidth - nekoW)+1 + 'px'; + neko.style.top = '50px'; + move(neko, 0, 0); + function move(obj, w, h) { + if (obj.direction === 'left') { + obj.style.left = 0 - w + 'px'; + } else if (obj.direction === 'right') { + + obj.style.left = document.body.offsetWidth - nekoW + w + 'px'; + } + if (obj.direction === 'top') { + obj.style.top = 0 - h + 'px'; + } else if (obj.direction === 'bottom') { + obj.style.top = document.body.offsetHeight - nekoH + h + 'px'; + } + } + + function rate(obj, a) { + // console.log(a); + obj.style.transform = ' rotate(' + a + ')' + } + + var nekotitle = document.querySelector('#neko-title'); + nekotitle.onmousedown = function (e) { + var nekoL = e.clientX - neko.offsetLeft; + var nekoT = e.clientY - neko.offsetTop; + document.onmousemove = function (e) { + cuntW = 0; + cuntH = 0; + neko.direction = ''; + neko.style.transition = ''; + neko.style.left = (e.clientX - nekoL) + 'px'; + neko.style.top = (e.clientY - nekoT) + 'px'; + if (e.clientX - nekoL < 5) { + neko.direction = 'left'; + } + if (e.clientY - nekoT < 5) { + neko.direction = 'top'; + } + if (e.clientX - nekoL > document.body.offsetWidth - nekoW - 5) { + neko.direction = 'right'; + } + if (e.clientY - nekoT > document.body.offsetHeight - nekoH - 5) { + neko.direction = 'bottom'; + } + + move(neko, 0, 0); + + + } + } + neko.onmouseover = function () { + move(this, 0, 0); + rate(this, 0) + } + + neko.onmouseout = function () { + // move(this, nekoW / 2, nekoH / 2); + move(this, nekoW / 2, 0); + // move(this, 0, 0); + } + + neko.onmouseup = function () { + document.onmousemove = null; + this.style.transition = '.5s'; + // move(this, nekoW / 2, nekoH / 2); + move(this, nekoW / 2, 0); + } + + window.onresize = function () { + var bodyH = document.body.offsetHeight; + var nekoT = neko.offsetTop; + var bodyW = document.body.offsetWidth; + var nekoL = neko.offsetLeft; + + if (nekoT + nekoH > bodyH) { + neko.style.top = bodyH - nekoH + 'px'; + cuntH++; + } + if (bodyH > nekoT && cuntH > 0) { + neko.style.top = bodyH - nekoH + 'px'; + } + if (nekoL + nekoW > bodyW) { + neko.style.left = bodyW - nekoW + 'px'; + cuntW++; + } + if (bodyW > nekoL && cuntW > 0) { + neko.style.left = bodyW - nekoW + 'px'; + } + + // move(neko, nekoW / 2, nekoH / 2); + move(this, nekoW / 2, 0); + // move(this, 0, 0); + } +}); + +function init_copy() { + var elements = document.getElementsByClassName("copy"); + for (var i=0, len=elements.length|0; i setTimeout(resolve, time)); +} + +var key = ["ip","ip_port","domain","path","incomplete_path","url","static","sfz","mobile","mail","jwt","algorithm","secret"] + +function show_info(result_data) { + for (var k in key){ + if (result_data[key[k]]!=null && result_data[key[k]].length != 0){ + // console.log(result_data[key[k]]) + let p=""; + for(var i in result_data[key[k]]){ + p = p + result_data[key[k]][i] +'\n' + } + document.getElementById(key[k]).style.whiteSpace="pre"; + document.getElementById(key[k]).textContent=p; + } + } +} +function get_info() { + chrome.runtime.sendMessage({greeting: "get", current: window.location.href}, function(result_data) { + if(result_data == undefined || result_data['done']!='done' || result_data==null){ + // console.log('还未提取完成'); + if(result_data != undefined || result_data!=null ){ + show_info(result_data); + document.getElementById('taskstatus').textContent = "处理中.."+result_data['donetasklist'].length+"/"+result_data['tasklist'].length; + }else{ + document.getElementById('taskstatus').textContent = "处理中.."; + } + sleep(1000); + get_info(); + return; + } + document.getElementById('taskstatus').textContent = "处理完成:"+result_data['donetasklist'].length+"/"+result_data['tasklist'].length; + show_info(result_data); + // 结果不一致继续刷新 + if(result_data['donetasklist'].length!=result_data['tasklist'].length){ + get_info(); + } + return; + }); +} +get_info(); \ No newline at end of file diff --git a/jquery-3.6.0.min.js b/jquery-3.6.0.min.js deleted file mode 100644 index c4c6022..0000000 --- a/jquery-3.6.0.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 - -
-
-

ip

+ +
+
主页
+
配置
+
+
+
+
+
IP

🈚️

-

ip_port

+
IP_PORT

🈚️

-

域名

+
域名

🈚️

-

身份证

+
身份证

🈚️

-

手机号

+
手机号

🈚️

-

邮箱

+
邮箱

🈚️

-

jwt

+
JWT

🈚️

-

算法

+
算法

🈚️

-

secret

+
Secret

🈚️

-
-

path

+
+
Path

🈚️

-

incomplete_path

+
IncompletePath

🈚️

-

url

+
Url

🈚️

-

static_url

+
StaticUrl

🈚️

- + diff --git a/popup.js b/popup.js index c2f2216..2bbc878 100755 --- a/popup.js +++ b/popup.js @@ -1,36 +1,69 @@ // @Date : 2020-09-12 16:26:48 // @Author : residuallaugh -const bg = chrome.extension.getBackgroundPage(); var key = ["ip","ip_port","domain","path","incomplete_path","url","static","sfz","mobile","mail","jwt","algorithm","secret"] -chrome.tabs.getSelected(null, function (tab) { - var current=tab.url; - var result_data = bg.result(current); - if(result_data == undefined){ - console.log('还未提取完成'); - return; + +function init_copy() { + var elements = document.getElementsByClassName("copy"); + for (var i=0, len=elements.length|0; i setTimeout(resolve, time)); +} + +function show_info(result_data) { + for (var k in key){ + if (result_data[key[k]]!=null && result_data[key[k]].length != 0){ + // console.log(result_data[key[k]]) + let p=""; + for(var i in result_data[key[k]]){ + p = p + result_data[key[k]][i] +'\n' } + document.getElementById(key[k]).style.whiteSpace="pre"; + document.getElementById(key[k]).textContent=p; } -}); + } +} + +getCurrentTab().then(function get_info(tab) { + chrome.runtime.sendMessage({greeting: "get", current: tab.url}, function(result_data) { + if(result_data == undefined || result_data['done']!='done' || result_data==null){ + // console.log('还未提取完成'); + if(result_data != undefined || result_data!=null ){ + show_info(result_data); + document.getElementById('taskstatus').textContent = "处理中.."+result_data['donetasklist'].length+"/"+result_data['tasklist'].length; + }else{ + document.getElementById('taskstatus').textContent = "处理中.."; + } + sleep(1000); + get_info(tab); + return; + } + document.getElementById('taskstatus').textContent = "处理完成:"+result_data['donetasklist'].length+"/"+result_data['tasklist'].length; + show_info(result_data); + // 结果不一致继续刷新 + if(result_data['donetasklist'].length!=result_data['tasklist'].length){ + get_info(tab); + } + return; + }); +}) + -$(function () { - $('.copy').click(function () { - console.log('copy begin'); - var inp =document.createElement('textarea'); - document.body.appendChild(inp) - inp.value =$($(this).attr('name')).text(); - inp.select(); - document.execCommand('copy',false); - inp.remove(); - console.log('copy end'); - }) -}) \ No newline at end of file +init_copy(); \ No newline at end of file diff --git a/settings.html b/settings.html new file mode 100644 index 0000000..6c2fe27 --- /dev/null +++ b/settings.html @@ -0,0 +1,63 @@ + + + + + + + +
+
主页
+
配置
+
+
+
+
全局悬浮窗
打开
+
Webhook
+
+
回调地址
+
请求方法
+
请求参数
+
自定义headers
+
+
置空并保存
+
保存
+
+
+ +
+
+ + + + diff --git a/settings.js b/settings.js new file mode 100644 index 0000000..967d613 --- /dev/null +++ b/settings.js @@ -0,0 +1,41 @@ + +document.getElementById("save").onclick=function () { + let webhook_setting = {}; + webhook_setting['url'] = document.getElementById('url').value; + webhook_setting['method'] = document.getElementById('method').value; + webhook_setting['arg'] = document.getElementById('arg').value; + webhook_setting['headers'] = JSON.parse(document.getElementById('headers').value); + // console.log(webhook_setting); + chrome.storage.local.set({"webhook_setting": webhook_setting}); +} +document.getElementById("reset").onclick=function () { + // var webhook_setting = {}; + document.getElementById('url').value = ""; + document.getElementById('arg').value = ""; + document.getElementById('headers').value = "{}"; + // console.log(webhook_setting); +} + +document.getElementById("global_float").onclick=function () { + // var webhook_setting = {}; + chrome.storage.local.get(["global_float"], function(settings){ + // console.log(settings); + chrome.storage.local.set({"global_float": settings["global_float"]==true ? false : true}); + document.getElementById('global_float').textContent = settings["global_float"]==true ? "已关闭" : "已打开"; + }); + // console.log(webhook_setting); +} + +chrome.storage.local.get(["webhook_setting"], function(settings){ + console.log(settings); + if(settings["webhook_setting"] == {}){ + console.log('获取webhook_setting失败'); + return; + } + document.getElementById('url').value = settings["webhook_setting"]['url']; + document.getElementById('method').value = settings["webhook_setting"]['method']; + document.getElementById('arg').value = settings["webhook_setting"]['arg']; + document.getElementById('headers').value = JSON.stringify(settings["webhook_setting"]['headers']); +}); +chrome.storage.local.get(["global_float"], function(settings){ + document.getElementById('global_float').textContent = settings["global_float"]==true ? "已打开" : "已关闭";});