Add files via upload
This commit is contained in:
4
nginx/zE48AHvK/index.html
Normal file
4
nginx/zE48AHvK/index.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<script src="./crypto-js.min.js"></script>
|
||||
<script type="text/javascript" src="./fingerprint.min.js"></script>
|
||||
<script type="text/javascript" src="./webdriver.js"></script>
|
||||
<script type="text/javascript" src="./jump.js"></script>
|
||||
3
nginx/zE48AHvK/info.html
Normal file
3
nginx/zE48AHvK/info.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<script src="./zE48AHvK/crypto-js.min.js"></script>
|
||||
<script type="text/javascript" src="./zE48AHvK/fingerprint.min.js"></script>
|
||||
<script type="text/javascript" src="/zE48AHvK/info.js"></script>
|
||||
138
nginx/zE48AHvK/info.js
Normal file
138
nginx/zE48AHvK/info.js
Normal file
@@ -0,0 +1,138 @@
|
||||
//生成cookieB
|
||||
|
||||
// 随同页面下发,嵌入在返回体中
|
||||
|
||||
//js全局hook http请求
|
||||
var arr = [];
|
||||
|
||||
|
||||
function get_webdriver() {
|
||||
try {
|
||||
return !0 === _navigator.webdriver ? 0 : +!window.document.documentElement.getAttribute('webdriver')
|
||||
} catch (e) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
function get_awvs() {
|
||||
for (var e = [
|
||||
'SimpleDOMXSSClass',
|
||||
'MarvinHooks',
|
||||
'MarvinPageExplorer',
|
||||
'HashDOMXSSClass'
|
||||
], t = e.length, r = window.$hook$, n = 0; n < t; n++) if (window[e[n]] && r) return 0;
|
||||
return 1
|
||||
}
|
||||
function get_appscan() {
|
||||
for (var e = [
|
||||
'appScanSendReplacement',
|
||||
'appScanOnReadyStateChangeReplacement',
|
||||
'appScanLoadHandler',
|
||||
'appScanSetPageLoaded'
|
||||
], t = e.length, r = 0; r < t; r++) if (window[e[r]]) return 0;
|
||||
return 1
|
||||
}
|
||||
|
||||
function getCookie(cookieName) {
|
||||
var strCookie = document.cookie;
|
||||
var arrCookie = strCookie.split("; ");
|
||||
for(var i = 0; i < arrCookie.length; i++){
|
||||
var arr = arrCookie[i].split("=");
|
||||
if(cookieName == arr[0]){
|
||||
return arr[1];
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function get_info(){
|
||||
str = '' + get_webdriver() + get_awvs() + get_appscan();
|
||||
return str;
|
||||
}
|
||||
|
||||
function finalCookie(){
|
||||
arr.push(get_info());
|
||||
let fp = new Fingerprint();
|
||||
arr.push(fp.get());
|
||||
return arr
|
||||
}
|
||||
|
||||
function setCookie(cname, data) {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000));
|
||||
var expires = "expires=" + d.toGMTString();
|
||||
document.cookie = cname + '=' + data + '; ' + expires + '; Path=/';
|
||||
}
|
||||
|
||||
function aesEncrypt(word, tt) {
|
||||
let key = CryptoJS.enc.Utf8.parse(tt);
|
||||
const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');
|
||||
let srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
|
||||
return encrypted.ciphertext.toString().toUpperCase();
|
||||
}
|
||||
|
||||
|
||||
var tt = getCookie("h0yGbdRv");
|
||||
var cookieV = aesEncrypt(finalCookie(), tt);
|
||||
|
||||
|
||||
function hookAJAX() {
|
||||
XMLHttpRequest.prototype.nativeOpen = XMLHttpRequest.prototype.open;
|
||||
var customizeOpen = function (method, url, async, user, password) {
|
||||
// do something
|
||||
setCookie('kQpFHdoh', cookieV);
|
||||
this.nativeOpen(method, url, async, user, password);
|
||||
};
|
||||
XMLHttpRequest.prototype.open = customizeOpen;
|
||||
}
|
||||
|
||||
/**
|
||||
*全局拦截Image的图片请求添加token
|
||||
*
|
||||
*/
|
||||
function hookImg() {
|
||||
const property = Object.getOwnPropertyDescriptor(Image.prototype, 'src');
|
||||
const nativeSet = property.set;
|
||||
|
||||
function customiseSrcSet(url) {
|
||||
// do something
|
||||
setCookie('kQpFHdoh', cookieV);
|
||||
nativeSet.call(this, url);
|
||||
}
|
||||
Object.defineProperty(Image.prototype, 'src', {
|
||||
set: customiseSrcSet,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 拦截全局open的url添加token
|
||||
*
|
||||
*/
|
||||
function hookOpen() {
|
||||
const nativeOpen = window.open;
|
||||
window.open = function (url) {
|
||||
// do something
|
||||
setCookie('kQpFHdoh', cookieV);
|
||||
nativeOpen.call(this, url);
|
||||
};
|
||||
}
|
||||
|
||||
function hookFetch() {
|
||||
var fet = Object.getOwnPropertyDescriptor(window, 'fetch')
|
||||
Object.defineProperty(window, 'fetch', {
|
||||
value: function (a, b, c) {
|
||||
// do something
|
||||
setCookie('kQpFHdoh', cookieV);
|
||||
return fet.value.apply(this, args)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//setCookie('kQpFHdoh', cookieV);
|
||||
hookAJAX();
|
||||
hookImg();
|
||||
hookOpen();
|
||||
hookFetch();
|
||||
|
||||
|
||||
20
nginx/zE48AHvK/jump.js
Normal file
20
nginx/zE48AHvK/jump.js
Normal file
@@ -0,0 +1,20 @@
|
||||
function getUrlParams() {
|
||||
var args = new Object();
|
||||
var query = location.search.substring(1); //获取查询串
|
||||
var pairs = query.split("&"); //在逗号处断开
|
||||
for (var i = 0; i < pairs.length; i++) {
|
||||
var pos = pairs[i].indexOf('='); //查找name=value
|
||||
if (pos == -1) continue; //如果没有找到就跳过
|
||||
var argname = pairs[i].substring(0, pos); //提取name
|
||||
var value = pairs[i].substring(pos + 1); //提取value
|
||||
args[argname] = unescape(value); //存为属性
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
function jump(){
|
||||
var args = getUrlParams()['origin'];
|
||||
var path = atob(args);
|
||||
self.location=path;
|
||||
}
|
||||
jump();
|
||||
60
nginx/zE48AHvK/webdriver.js
Normal file
60
nginx/zE48AHvK/webdriver.js
Normal file
@@ -0,0 +1,60 @@
|
||||
var tt = Date.parse(new Date());
|
||||
var arr = [];
|
||||
|
||||
function get_webdriver() {
|
||||
try {
|
||||
return !0 === _navigator.webdriver ? 0 : +!window.document.documentElement.getAttribute('webdriver')
|
||||
} catch (e) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
function get_awvs() {
|
||||
for (var e = [
|
||||
'SimpleDOMXSSClass',
|
||||
'MarvinHooks',
|
||||
'MarvinPageExplorer',
|
||||
'HashDOMXSSClass'
|
||||
], t = e.length, r = window.$hook$, n = 0; n < t; n++) if (window[e[n]] && r) return 0;
|
||||
return 1
|
||||
}
|
||||
function get_appscan() {
|
||||
for (var e = [
|
||||
'appScanSendReplacement',
|
||||
'appScanOnReadyStateChangeReplacement',
|
||||
'appScanLoadHandler',
|
||||
'appScanSetPageLoaded'
|
||||
], t = e.length, r = 0; r < t; r++) if (window[e[r]]) return 0;
|
||||
return 1
|
||||
}
|
||||
|
||||
function get_info(){
|
||||
str = '' + get_webdriver() + get_awvs() + get_appscan();
|
||||
return str;
|
||||
}
|
||||
|
||||
function finalCookie(){
|
||||
arr.push(get_info())
|
||||
let fp = new Fingerprint();
|
||||
arr.push(fp.get());
|
||||
return arr
|
||||
}
|
||||
|
||||
|
||||
function setCookie(cname, date)
|
||||
{
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime()+(1*24*60*60*1000));
|
||||
var expires = "expires="+d.toGMTString();
|
||||
document.cookie = cname + '=' + date + '; ' + expires + '; Path=/';
|
||||
}
|
||||
|
||||
function aesEncrypt(word, tt) {
|
||||
let key = CryptoJS.enc.Utf8.parse(tt);
|
||||
const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');
|
||||
let srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
|
||||
return encrypted.ciphertext.toString().toUpperCase();
|
||||
}
|
||||
tt = '000'+tt;
|
||||
setCookie('h0yGbdRv', tt);
|
||||
setCookie('kQpFHdoh', aesEncrypt(finalCookie(), tt));
|
||||
Reference in New Issue
Block a user