Help
RSS
API
Feed
Maltego
Contact
Domain > tk.garyun.cn
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-02-11
8.217.1.99
(
ClassC
)
Port 80
HTTP/1.1 200 OKServer: nginxContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingCache-Control: no-cache, privateDate: Tue, 11 Feb 2025 02:33:59 GMTSet-Cookie: XSRF-TOKENeyJpdiI6InU3MVcvV0IzL3RMRGJSYlBUL2ZpVmc9PSIsInZhbHVlIjoidVBxeFBzeU5XRFgrVW9UV2J5UmhLR0JaSjNUWGxCN2VpRkdTcnQ0YkN2bnM5NEEzcUlSUUJBZjRCZENIcTd2RFVxam9HSkpLZGJpUlZYZFZJTFVQWG1LSzMvZTkrcERvYytVU0Fnd09DdE5IUmZEVTF5bEtZb2JPTVhJWElGU2IiLCJtYWMiOiJhNDkzZDI3YWQxOTRiZjY3OTljOWI4ZTIzMDcyYTAyZDE0MmJiNmEyYmQyNWYzYTg4MThmYjI4NDBkYTVmZWQ5IiwidGFnIjoiIn0%3D; expiresTue, 11-Feb-2025 04:33:59 GMT; Max-Age7200; path/; samesitelaxSet-Cookie: lsky_pro_sessioneyJpdiI6IlhVelp1b1J0bHNKb0NNdlNnSjUxT3c9PSIsInZhbHVlIjoiTmJ5aHF2dlB4a0NaM0s0a0RIWFRlWEdxTytIZGxDTDlwRHRKMW5FUEptcXZOOWpHOWNTZUo0SVQ4bGRCZnB6WkVxOXk5b1k2OU5nS001SlUyRE1ZbVpBYXI0dDdXYnphalh1VGtEV1V0WHpWNHMyOVF1Z3JsL2dPSHVUMUVlZGUiLCJtYWMiOiIzMTU3MTU3NTU4NWFjZDZjOGQwMDljYmZjMTBjYTIwYmI5OGM5NTZkM2M2NWJjN2YwMmY1ZWQxNTQ3YTRmZmE5IiwidGFnIjoiIn0%3D; expiresTue, 11-Feb-2025 04:33:59 GMT; Max-Age7200; path/; httponly; samesitelaxStrict-Transport-Security: max-age31536000 !DOCTYPE html>html langzh-CN classrelative min-full> head> meta charsetutf-8> meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalableno /> meta namecsrf-token contentg0l9H3KZDmkXUvSTRG1YYQ7AgNR7PLi51zrK3sH6> meta namekeywords contentLsky Pro,lsky,兰空图床/> meta namedescription contentLsky Pro, Your photo album on the cloud./> title>Lsky Pro/title> !-- Fonts --> link relstylesheet hrefhttps://fonts.googleapis.com/css2?familyNunito:wght@400;600;700&displayswap> link relstylesheet hrefhttp://tk.garyun.cn/css/fontawesome.css> link relstylesheet hrefhttp://tk.garyun.cn/css/markdown-css/github-markdown-light.css> !-- Styles --> link relstylesheet hrefhttp://tk.garyun.cn/css/common.css?t20220817> link relstylesheet hrefhttp://tk.garyun.cn/css/app.css?t20220817> /head> body classfont-sans antialiased> div classmin-h-screen text-gray-900 bg-gray-100> div classpy-14> header classw-full h-14 bg-gray-700 text-white flex justify-center fixed top-0 z-9> div classcontainer mx-auto px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 flex justify-between items-center> div classflex justify-start items-center max-w-70%> a hrefhttp://tk.garyun.cn classtext-white text-xl truncate>Lsky Pro/a> /div> div classflex justify-end items-center space-x-4> !-- Strategies dropdown -->div classrelative x-data{ open: false } @click.outsideopen false @close.stopopen false x-cloak> div @clickopen ! open> button typebutton classbg-gray-800 flex items-center text-sm rounded-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white iduser-menu-button aria-expandedfalse aria-haspopuptrue> span classsr-only>Open strategies menu/span> div classh-8 w-8 rounded-full flex items-center justify-center bg-white> i classfas fa-server text-gray-900>/i> /div> span classpx-2 sm:block hidden idstrategy-selected data-id0>获取中.../span> /button> /div> div x-showopen x-transition:entertransition ease-out duration-200 x-transition:enter-starttransform opacity-0 translate-y-9 x-transition:enter-endtransform opacity-100 translate-y-0 x-transition:leavetransition ease-in duration-75 x-transition:leave-starttransform opacity-100 translate-y-0 x-transition:leave-endtransform opacity-0 translate-y-9 classabsolute z-9 origin-top-right right-0 mt-2 w-48 rounded-md shadow-10px_0px_50px_-15px_rgba(0,0,0,0.25) py-1 bg-white rolemenu aria-orientationvertical aria-labelledbyuser-menu-button tabindex-1 styledisplay: none > div idstrategies> a classblock px-4 py-2 active:bg-gray-100 text-sm text-gray-700 truncate hover:bg-sky-500 hover:text-white rolemenuitem tabindex-1 data-id1 hrefjavascript:void(0) @clickopen false>默认/a> /div> /div>/div> a hrefhttp://tk.garyun.cn/login classtext-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium>登录/a> a hrefhttp://tk.garyun.cn/register classtext-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium>注册/a> /div> /div> /header> div classmt-10 container mx-auto px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60> div classpb-6 h-full> input typefile idpicker namefile classhidden accept.jpeg,.jpg,.png,.gif,.tif,.bmp,.ico,.psd,.webp multiple> div classmb-4 p-4 bg-white rounded-md shadow-custom> h1 classtracking-wider text-2xl text-gray-700 mb-2 styletext-shadow: -4px 4px 0 rgb(0 0 0 / 10%);>Image Upload/h1> p classtext-gray-500 text-sm> 最大可上传 100.00 MB 的图片,上传队列最多 3 张。本站已托管 371 张图片。 /p> div classmt-3 rounded-md border-2 border-dotted border-stone-300 w-full h-full idpicker-dnd onclick$(#picker).click()> div idupload-container classrelative group flex flex-col justify-center items-center p-2 w-full h-full min-h-150px sm:min-h-340px space-y-4 text-gray-500 cursor-pointer> i idclear classfas fa-times absolute top-1 right-1 w-8 h-8 flex justify-center items-center cursor-pointer text-xl text-center hidden group-hover:block text-gray-400 hover:text-gray-500>/i> p idupload-all title点我上传全部>i classfas fa-cloud-upload-alt text-6xl hover:text-indigo-400>/i>/p> p classtext-md text-center>拖拽文件到这里,支持多文件同时上传br/>点击上面的图标上传全部已选择文件/p> /div> div idupload-preview classflex m-2 hidden>/div> /div> /div> div idlinks-container classhidden mb-4 p-4 bg-white rounded-md relative group shadow-custom> div classabsolute top-2 right-2 flex> span idcopy-all classpx-2 py-1 rounded-md text-xs text-gray-800 bg-gray-100 cursor-pointer hidden group-hover:block>复制全部/span> span idclear-all classml-1 px-2 py-1 rounded-md text-xs text-gray-800 bg-gray-100 cursor-pointer hidden group-hover:block>清除/span> /div> div idlink-tabs classflex flex-nowrap overflow-scroll scrollbar-none text-sm> a hrefjavascript:void(0) data-tab-nameurl classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-indigo-500 active>URL/a> a hrefjavascript:void(0) data-tab-namehtml classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>HTML/a> a hrefjavascript:void(0) data-tab-namebbcode classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>BBCode/a> a hrefjavascript:void(0) data-tab-namemarkdown classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>Markdown/a> a hrefjavascript:void(0) data-tab-namemarkdown_with_link classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent whitespace-nowrap>Markdown with link/a> a hrefjavascript:void(0) data-tab-namethumbnail_url classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent whitespace-nowrap>Thumbnail url/a> /div> div idlinks classmt-2> div data-taburl classspace-y-2>/div> div data-tabhtml classhidden space-y-2>/div> div data-tabbbcode classhidden space-y-2>/div> div data-tabmarkdown classhidden space-y-2>/div> div data-tabmarkdown_with_link classhidden space-y-2>/div> div data-tabthumbnail_url classhidden space-y-2>/div> /div> /div>/div>div idpreview-modal classfixed z-10 inset-0 overflow-y-auto roledialog aria-modaltrue x-data x-cloak x-show$store.modal.isOpen(preview-modal)> div classflex min-h-screen text-center md:block md:px-2 lg:px-4 stylefont-size: 0> div x-transition:entertransition ease-out duration-300 x-transition:enter-starttransform opacity-0 x-transition:enter-endtransform opacity-100 x-transition:leavetransition ease-in duration-200 x-transition:leave-starttransform opacity-100 x-transition:leave-endtransform opacity-0 x-show$store.modal.isOpen(preview-modal) @click$store.modal.close(preview-modal) classhidden fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity md:block aria-hiddentrue > /div> span classhidden md:inline-block md:align-middle md:h-screen aria-hiddentrue>/span> div x-transition:entertransition ease-out duration-300 x-transition:enter-starttransform opacity-0 translate-y-4 md:translate-y-0 md:scale-95 x-transition:enter-endtransform opacity-100 translate-y-0 md:scale-100 x-transition:leavetransition ease-in duration-200 x-transition:leave-starttransform opacity-100 translate-y-0 md:scale-100 x-transition:leave-endtransform opacity-0 translate-y-4 md:translate-y-0 md:scale-95 x-show$store.modal.isOpen(preview-modal) classflex text-base text-left transform transition w-full md:inline-block md:max-w-2xl md:px-4 md:my-8 md:align-middle lg:max-w-4xl > div classw-full relative flex bg-white px-4 pt-14 pb-8 overflow-hidden shadow-lg sm:px-6 sm:pt-8 md:p-6 lg:p-8 md:rounded-sm> button typebutton classabsolute top-2 right-2 text-gray-400 hover:text-gray-500 sm:top-4 sm:right-4 md:top-3 md:right-3 lg:top-4 lg:right-4 @click$store.modal.close(preview-modal)> span classsr-only>Close/span> svg classh-6 w-6 xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 strokecurrentColor aria-hiddentrue> path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12 /> /svg> /button> div classflex items-center justify-center h-24 w-full x-show$store.modal.isLoading(preview-modal)> svg classanimate-spin -ml-1 mr-3 h-5 w-5 text-red-500 xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24> circle classopacity-25 cx12 cy12 r10 strokecurrentColor stroke-width4>/circle> path classopacity-75 fillcurrentColor dM4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z>/path>/svg> /div> div classw-full x-show! $store.modal.isLoading(preview-modal)> div classrounded-lg overflow-hidden> img classw-full h-full object-cover src> /div> /div> /div> /div> /div>/div>script typetext/html idimage-preview-tpl> div data-id__id__ classw-full flex items-center p-2 mb-2 rounded-md relative bg-gray-50 overflow-hidden> div classabsolute inset-0> div classw-0% h-full bg-gray-200 opacity-70 upload-progress>/div> /div> div classrelative flex w-full> div classw-10 h-10 bg-gray-200 rounded-lg cursor-pointer overflow-hidden> img classw-full h-full object-cover data-operatepreview src__src__> /div> div classflex justify-end flex-col ml-2 w-80% opacity-70> p classtext-sm truncate>__name__/p> p classtext-xs truncate> span>__info__/span>, span classupload-info>等待上传/span> /p> /div> /div> div classabsolute right-2 flex space-x-2> a hrefjavascript:void(0) data-operateremove classflex justify-center items-center block shadow-sm w-10 h-10 rounded-full text-gray-600 bg-gray-100 hover:bg-gray-200 aspect-w-1 aspect-h-1>i classfas fa-times>/i>/a> a hrefjavascript:void(0) data-operateupload classflex justify-center items-center block shadow-sm w-10 h-10 rounded-full text-gray-600 bg-gray-100 hover:bg-gray-200 aspect-w-1 aspect-h-1>i classfas fa-upload>/i>/a> /div> /div>/script> /div> footer classabsolute bottom-0 left-0 right-0 w-full bg-gray-200> p classcontainer mx-auto py-2 px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 text-gray-500 text-sm> Copyright © 2018 - present Lsky Pro. All rights reserved. a hrefhttps://beian.miit.gov.cn/ target_blank relnoreferrer>/a> 请勿上传违反中国大陆和香港法律的图片,违者后果自负。 /p> /footer> /div> /div> /body> !-- Scripts --> script srchttp://tk.garyun.cn/js/app.js?t20220817>/script> script> let defaultStrategy 0 || (localStorage.getItem(strategy) || 0); let setStrategy function (id) { let isSelected false; $(#strategies a).each(function () { if (parseInt($(this).data(id)) parseInt(id)) { localStorage.setItem(strategy, id) $(#strategy-selected).text($(this).text()).data(id, id); isSelected true; } }); if (! isSelected) { let $first $(#strategies a:first-child); localStorage.setItem(strategy, $first.data(id)) $(#strategy-selected).text($first.text()).data(id, $first.data(id)); } }; setStrategy(defaultStrategy); $(#strategies a).click(function () { setStrategy($(this).data(id)) }); /script> script srchttp://tk.garyun.cn/js/blueimp-file-upload/jquery.ui.widget.js>/script> script srchttp://tk.garyun.cn/js/blueimp-file-upload/jquery.iframe-transport.js>/script> script srchttp://tk.garyun.cn/js/blueimp-file-upload/jquery.fileupload.js>/script> script srchttp://tk.garyun.cn/js/blueimp-load-image/load-image.all.min.js>/script> script srchttp://tk.garyun.cn/js/clipboard/clipboard.min.js>/script> script> let allowSuffixes jpeg,jpg,png,gif,tif,bmp,ico,psd,webp; let maxSize 104857600; let pastedAction 1; /script> script> (new ClipboardJS(#copy-all, { text: function(trigger) { let text ; $(data-tab + $(#link-tabs a.active).data(tab-name) + p).each(function (i) { if (i ! 0) { text + \r\n; } text + $(this).text(); }); return text; } })).on(success, function(e) { if (! $(e.trigger).attr(disabled)) { let text $(e.trigger).text(); $(e.trigger).attr(disabled, true).text(复制成功); setTimeout(function () { $(e.trigger).attr(disabled, false).text(text); }, 1000); } }).on(error, function(e) { toastr.warning(复制失败) }); /script> script> const UPLOAD_WAITING 0; // 等待上传 const UPLOAD_SUCCESS 1; // 上传成功 const UPLOAD_ERROR 2; // 上传失败 let $previews $(#upload-preview); let $links $(#links-container); let $picker $(#picker); let queue ; // 文件队列 let excludes psd, tif; // 排除支持预览的格式 /** * 设置状态 * @param data * @param status * @param message */ const setStatus (data, status, message) > { queuedata.guid.status data.status status; let $info data.$preview.find(.upload-info); $info.removeClass(text-green-500 text-red-500) let msg ; switch (status) { case UPLOAD_WAITING: msg 等待上传; break; case UPLOAD_SUCCESS: msg 上传成功; $info.addClass(text-green-800); break; case UPLOAD_ERROR: msg 上传失败; $info.addClass(text-red-500) break; } $info.text(message ? message : msg); } $picker.fileupload({ url: http://tk.garyun.cn/upload, autoUpload: false, dataType: json, headers: { X-CSRF-TOKEN: $(metanamecsrf-token).attr(content) }, limitMultiFileUploads: 1, limitConcurrentUploads: 3, pasteZone: $(document), dropZone: $(#picker-dnd), formData: (form) > { return {name: strategy_id, value: $(#strategy-selected).data(id)}; }, paste: (e, data) > { let files ; $.each(data.files, function (index, file) { let name new Date().getTime().toString(); filesindex new File(file, name + . + file.name.substr(file.name.lastIndexOf(.) + 1), { type: file.type, lastModified: file.lastModified, }); }); data.files files; data.from paste; }, add: (e, data) > { // Return true to continue adding, otherwise terminate let file data.files0; let ext file.name.substr(file.name.lastIndexOf(.) + 1); if (allowSuffixes.indexOf(ext.toLowerCase()) -1) { toastr.warning(`不支持的图片格式 ${file.name}`); return true; } if (file.size > maxSize) { toastr.warning(`图片 ${file.name} 超出大小限制`); return true; } let guid utils.guid(); data.guid guid; // 推送到队列 let push function (blob) { let html $(#image-preview-tpl) .html() .replace(/__id__/g, guid) .replace(/__src__/g, blob) .replace(/__name__/g, file.name.replace(/\$/g, $$$$)) .replace(/__info__/g, utils.formatSize(file.size)); data.$preview $previews.append(html).show().find(`data-id${guid}`); queueguid data; setStatus(data, UPLOAD_WAITING); // 如果来源是否为粘贴,判断是否需要直接上传 if (data.from paste && pastedAction 2) { queueguid.submit(); } }; if (excludes.indexOf(file.name.substring(file.name.lastIndexOf(.) + 1).toLowerCase()) ! -1) { push(data:image/png;base64,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); } else { loadImage(file, function (img) { if (img.type error) { toastr.error(`文件 ${file.name} 缩略图生成失败`); console.error(Error loading image file) } push(img.toDataURL()) }, { maxWidth: 200, maxHeight: 200, meta: true, orientation: true, canvas: true }, ) } }, send: (e, data) > { data.$preview.find(data-operateupload).hide(); }, progress: (e, data) > { let progress parseInt(data.loaded / data.total * 100, 10); let $uploadInfo data.$preview.find(.upload-info); let $uploadProgress data.$preview.find(.upload-progress); let rate progress + %; $uploadInfo.text(上传中... + rate); $uploadProgress.css(width, rate); }, done: (e, data) > { let response data.result; if (response.status) { // 如果开启了自动清除缩略图功能 if (0) { delete queuedata.$preview.data(id); data.$preview.remove(); } else { setStatus(data, UPLOAD_SUCCESS) data.$preview.attr(uploaded, true); } // 追加链接 let links response.data.links; for (let key in links) { $(#links data-tab + key + ).append(p classwhitespace-nowrap select-all mt-1 bg-gray-50 hover:bg-gray-200 text-gray-600 rounded px-2 py-1 cursor-pointer overflow-scroll scrollbar-none> + linkskey.toString() + /p>) } $links.show(); utils.setCapacityProgress(response.data.size); } else { setStatus(data, UPLOAD_ERROR, 上传失败, + response.message); // 重新显示上传按钮 data.$preview.find(data-operateupload).show(); } }, fail: (e, data) > { if (data.errorThrown ! abort) { // 重新显示上传按钮 data.$preview.find(data-operateupload).show(); if (data.jqXHR.status 419) { return setStatus(data, UPLOAD_ERROR, 令牌错误,请刷新网页重试); } return setStatus(data, UPLOAD_ERROR, 服务端异常,请稍后重试); } }, // 等同于jq的complete always: (e, data) > { } }); $(document).on(drop dragover, (e) > e.preventDefault()); $previews.click((e) > e.stopPropagation()); $(#upload-all).click((e) > { // 队列中没有文件,选择则继续冒泡,选择文件 if (Object.values(queue).filter((item) > item.status ! UPLOAD_SUCCESS).length) { e.stopPropagation(); for (const key in queue) { if (queuekey.status ! UPLOAD_SUCCESS) { queuekey.submit(); } } } }); $previews.on(click, data-operate, function (e) { e.stopPropagation(); let $preview $(this).closest(data-id); let method $(this).data(operate); let id $preview.data(id); if (method remove) { queueid.abort(); delete queueid; $preview.remove(); } if (method upload && queueid.status ! UPLOAD_SUCCESS) { queueid.submit(); } if (method preview) { let file queueid.files0; if (excludes.indexOf(file.name.substring(file.name.lastIndexOf(.) + 1).toLowerCase()) -1) { let reader new FileReader(); reader.readAsDataURL(file); reader.onloadend function (e) { $(#preview-modal img).attr(src, e.target.result); Alpine.store(modal).open(preview-modal) } } } }); $(#clear).click(function (e) { e.stopPropagation(); queue ; $previews.html(); }); $(data-tab-name).click(function () { $(this).removeClass(active border-transparent) .addClass(active border-indigo-500) .siblings() .removeClass(active border-indigo-500) .addClass(border-transparent); $(data-tab).hide(); $(data-tab + $(this).data(tab-name) + ).show() }); $(#clear-all).click(function () { $(data-tab).html() $links.hide(); }); /script>/html>
Port 443
HTTP/1.1 200 OKServer: nginxContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingSet-Cookie: X_CACHE_KEY3a32b7ad70c058cc23abb1c4e105b666; path/; ExpiresFri, 31-Dec-9999 23:59:59 GMTCache-Control: no-cache, privateDate: Tue, 11 Feb 2025 02:34:00 GMTSet-Cookie: XSRF-TOKENeyJpdiI6Iks0UEZiYWhrSXp2QWNQSFhkcy9ROUE9PSIsInZhbHVlIjoiZzlkMXljeFVYRFM0T292RUZhNEMveWxjbXd1YmsvMHpybm5qQkdkbFhBTTZKazVPRnh3VnRjSGdWKzNlUm1xZjcrZ2Zua3lyRDd6K1d0eWVaVjdBZFlhYWNacjdqaHpUYi9WbGlhTDFITndQcnArbGtaMWVsc1c3T2VKQ01Da1IiLCJtYWMiOiIzNzliMmE1ZTMyOTc5MmU3ODZkODcxMDNlMzZkZmU4MWIyMDE0YWFjY2VkZGVlMDA4MTE5OTRlNDJjNTQxMGQ4IiwidGFnIjoiIn0%3D; expiresTue, 11-Feb-2025 04:34:00 GMT; Max-Age7200; path/; samesitelaxSet-Cookie: lsky_pro_sessioneyJpdiI6IkVmWDkyUjlvUncrRlZ4QjBmYTY5Mmc9PSIsInZhbHVlIjoiTmkvMlJydWZyZ3ZkVGFSZHQvbEdSVnFUSXNWWFdaUnRiTnhYNGp4SFZ2YXdpb1ZRUDZRY1VHRFIwT29Sai92SE9zVFgreEZEb3VZRjdNSW1DZnpkNzhwdEpGRVh4SndhdXV0UTRyajMrVUZlbXlpUndyRktnZzFYWmxPZW5UbGkiLCJtYWMiOiJjZWFmZGRhZDY0MDM0OGJhNzRiYTdhOTMzY2Y3MzBkMjMyM2NlZjUwODRiMmYzZDU0NTU4NjYyYmMzZWQ2YjQ4IiwidGFnIjoiIn0%3D; expiresTue, 11-Feb-2025 04:34:00 GMT; Max-Age7200; path/; httponly; samesitelaxStrict-Transport-Security: max-age31536000 !DOCTYPE html>html langzh-CN classrelative min-full> head> meta charsetutf-8> meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalableno /> meta namecsrf-token content4G8lqk80DHGLMhsLer3sf2oo7dDlbC7JgBPBFRqu> meta namekeywords contentLsky Pro,lsky,兰空图床/> meta namedescription contentLsky Pro, Your photo album on the cloud./> title>Lsky Pro/title> !-- Fonts --> link relstylesheet hrefhttps://fonts.googleapis.com/css2?familyNunito:wght@400;600;700&displayswap> link relstylesheet hrefhttps://tk.garyun.cn/css/fontawesome.css> link relstylesheet hrefhttps://tk.garyun.cn/css/markdown-css/github-markdown-light.css> !-- Styles --> link relstylesheet hrefhttps://tk.garyun.cn/css/common.css?t20220817> link relstylesheet hrefhttps://tk.garyun.cn/css/app.css?t20220817> /head> body classfont-sans antialiased> div classmin-h-screen text-gray-900 bg-gray-100> div classpy-14> header classw-full h-14 bg-gray-700 text-white flex justify-center fixed top-0 z-9> div classcontainer mx-auto px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 flex justify-between items-center> div classflex justify-start items-center max-w-70%> a hrefhttps://tk.garyun.cn classtext-white text-xl truncate>Lsky Pro/a> /div> div classflex justify-end items-center space-x-4> !-- Strategies dropdown -->div classrelative x-data{ open: false } @click.outsideopen false @close.stopopen false x-cloak> div @clickopen ! open> button typebutton classbg-gray-800 flex items-center text-sm rounded-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white iduser-menu-button aria-expandedfalse aria-haspopuptrue> span classsr-only>Open strategies menu/span> div classh-8 w-8 rounded-full flex items-center justify-center bg-white> i classfas fa-server text-gray-900>/i> /div> span classpx-2 sm:block hidden idstrategy-selected data-id0>获取中.../span> /button> /div> div x-showopen x-transition:entertransition ease-out duration-200 x-transition:enter-starttransform opacity-0 translate-y-9 x-transition:enter-endtransform opacity-100 translate-y-0 x-transition:leavetransition ease-in duration-75 x-transition:leave-starttransform opacity-100 translate-y-0 x-transition:leave-endtransform opacity-0 translate-y-9 classabsolute z-9 origin-top-right right-0 mt-2 w-48 rounded-md shadow-10px_0px_50px_-15px_rgba(0,0,0,0.25) py-1 bg-white rolemenu aria-orientationvertical aria-labelledbyuser-menu-button tabindex-1 styledisplay: none > div idstrategies> a classblock px-4 py-2 active:bg-gray-100 text-sm text-gray-700 truncate hover:bg-sky-500 hover:text-white rolemenuitem tabindex-1 data-id1 hrefjavascript:void(0) @clickopen false>默认/a> /div> /div>/div> a hrefhttps://tk.garyun.cn/login classtext-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium>登录/a> a hrefhttps://tk.garyun.cn/register classtext-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium>注册/a> /div> /div> /header> div classmt-10 container mx-auto px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60> div classpb-6 h-full> input typefile idpicker namefile classhidden accept.jpeg,.jpg,.png,.gif,.tif,.bmp,.ico,.psd,.webp multiple> div classmb-4 p-4 bg-white rounded-md shadow-custom> h1 classtracking-wider text-2xl text-gray-700 mb-2 styletext-shadow: -4px 4px 0 rgb(0 0 0 / 10%);>Image Upload/h1> p classtext-gray-500 text-sm> 最大可上传 100.00 MB 的图片,上传队列最多 3 张。本站已托管 371 张图片。 /p> div classmt-3 rounded-md border-2 border-dotted border-stone-300 w-full h-full idpicker-dnd onclick$(#picker).click()> div idupload-container classrelative group flex flex-col justify-center items-center p-2 w-full h-full min-h-150px sm:min-h-340px space-y-4 text-gray-500 cursor-pointer> i idclear classfas fa-times absolute top-1 right-1 w-8 h-8 flex justify-center items-center cursor-pointer text-xl text-center hidden group-hover:block text-gray-400 hover:text-gray-500>/i> p idupload-all title点我上传全部>i classfas fa-cloud-upload-alt text-6xl hover:text-indigo-400>/i>/p> p classtext-md text-center>拖拽文件到这里,支持多文件同时上传br/>点击上面的图标上传全部已选择文件/p> /div> div idupload-preview classflex m-2 hidden>/div> /div> /div> div idlinks-container classhidden mb-4 p-4 bg-white rounded-md relative group shadow-custom> div classabsolute top-2 right-2 flex> span idcopy-all classpx-2 py-1 rounded-md text-xs text-gray-800 bg-gray-100 cursor-pointer hidden group-hover:block>复制全部/span> span idclear-all classml-1 px-2 py-1 rounded-md text-xs text-gray-800 bg-gray-100 cursor-pointer hidden group-hover:block>清除/span> /div> div idlink-tabs classflex flex-nowrap overflow-scroll scrollbar-none text-sm> a hrefjavascript:void(0) data-tab-nameurl classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-indigo-500 active>URL/a> a hrefjavascript:void(0) data-tab-namehtml classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>HTML/a> a hrefjavascript:void(0) data-tab-namebbcode classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>BBCode/a> a hrefjavascript:void(0) data-tab-namemarkdown classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent>Markdown/a> a hrefjavascript:void(0) data-tab-namemarkdown_with_link classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent whitespace-nowrap>Markdown with link/a> a hrefjavascript:void(0) data-tab-namethumbnail_url classhover:bg-gray-100 flex justify-center items-center px-8 py-2 border-b-2 border-transparent whitespace-nowrap>Thumbnail url/a> /div> div idlinks classmt-2> div data-taburl classspace-y-2>/div> div data-tabhtml classhidden space-y-2>/div> div data-tabbbcode classhidden space-y-2>/div> div data-tabmarkdown classhidden space-y-2>/div> div data-tabmarkdown_with_link classhidden space-y-2>/div> div data-tabthumbnail_url classhidden space-y-2>/div> /div> /div>/div>div idpreview-modal classfixed z-10 inset-0 overflow-y-auto roledialog aria-modaltrue x-data x-cloak x-show$store.modal.isOpen(preview-modal)> div classflex min-h-screen text-center md:block md:px-2 lg:px-4 stylefont-size: 0> div x-transition:entertransition ease-out duration-300 x-transition:enter-starttransform opacity-0 x-transition:enter-endtransform opacity-100 x-transition:leavetransition ease-in duration-200 x-transition:leave-starttransform opacity-100 x-transition:leave-endtransform opacity-0 x-show$store.modal.isOpen(preview-modal) @click$store.modal.close(preview-modal) classhidden fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity md:block aria-hiddentrue > /div> span classhidden md:inline-block md:align-middle md:h-screen aria-hiddentrue>/span> div x-transition:entertransition ease-out duration-300 x-transition:enter-starttransform opacity-0 translate-y-4 md:translate-y-0 md:scale-95 x-transition:enter-endtransform opacity-100 translate-y-0 md:scale-100 x-transition:leavetransition ease-in duration-200 x-transition:leave-starttransform opacity-100 translate-y-0 md:scale-100 x-transition:leave-endtransform opacity-0 translate-y-4 md:translate-y-0 md:scale-95 x-show$store.modal.isOpen(preview-modal) classflex text-base text-left transform transition w-full md:inline-block md:max-w-2xl md:px-4 md:my-8 md:align-middle lg:max-w-4xl > div classw-full relative flex bg-white px-4 pt-14 pb-8 overflow-hidden shadow-lg sm:px-6 sm:pt-8 md:p-6 lg:p-8 md:rounded-sm> button typebutton classabsolute top-2 right-2 text-gray-400 hover:text-gray-500 sm:top-4 sm:right-4 md:top-3 md:right-3 lg:top-4 lg:right-4 @click$store.modal.close(preview-modal)> span classsr-only>Close/span> svg classh-6 w-6 xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 strokecurrentColor aria-hiddentrue> path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12 /> /svg> /button> div classflex items-center justify-center h-24 w-full x-show$store.modal.isLoading(preview-modal)> svg classanimate-spin -ml-1 mr-3 h-5 w-5 text-red-500 xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24> circle classopacity-25 cx12 cy12 r10 strokecurrentColor stroke-width4>/circle> path classopacity-75 fillcurrentColor dM4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z>/path>/svg> /div> div classw-full x-show! $store.modal.isLoading(preview-modal)> div classrounded-lg overflow-hidden> img classw-full h-full object-cover src> /div> /div> /div> /div> /div>/div>script typetext/html idimage-preview-tpl> div data-id__id__ classw-full flex items-center p-2 mb-2 rounded-md relative bg-gray-50 overflow-hidden> div classabsolute inset-0> div classw-0% h-full bg-gray-200 opacity-70 upload-progress>/div> /div> div classrelative flex w-full> div classw-10 h-10 bg-gray-200 rounded-lg cursor-pointer overflow-hidden> img classw-full h-full object-cover data-operatepreview src__src__> /div> div classflex justify-end flex-col ml-2 w-80% opacity-70> p classtext-sm truncate>__name__/p> p classtext-xs truncate> span>__info__/span>, span classupload-info>等待上传/span> /p> /div> /div> div classabsolute right-2 flex space-x-2> a hrefjavascript:void(0) data-operateremove classflex justify-center items-center block shadow-sm w-10 h-10 rounded-full text-gray-600 bg-gray-100 hover:bg-gray-200 aspect-w-1 aspect-h-1>i classfas fa-times>/i>/a> a hrefjavascript:void(0) data-operateupload classflex justify-center items-center block shadow-sm w-10 h-10 rounded-full text-gray-600 bg-gray-100 hover:bg-gray-200 aspect-w-1 aspect-h-1>i classfas fa-upload>/i>/a> /div> /div>/script> /div> footer classabsolute bottom-0 left-0 right-0 w-full bg-gray-200> p classcontainer mx-auto py-2 px-5 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 text-gray-500 text-sm> Copyright © 2018 - present Lsky Pro. All rights reserved. a hrefhttps://beian.miit.gov.cn/ target_blank relnoreferrer>/a> 请勿上传违反中国大陆和香港法律的图片,违者后果自负。 /p> /footer> /div> /div> /body> !-- Scripts --> script srchttps://tk.garyun.cn/js/app.js?t20220817>/script> script> let defaultStrategy 0 || (localStorage.getItem(strategy) || 0); let setStrategy function (id) { let isSelected false; $(#strategies a).each(function () { if (parseInt($(this).data(id)) parseInt(id)) { localStorage.setItem(strategy, id) $(#strategy-selected).text($(this).text()).data(id, id); isSelected true; } }); if (! isSelected) { let $first $(#strategies a:first-child); localStorage.setItem(strategy, $first.data(id)) $(#strategy-selected).text($first.text()).data(id, $first.data(id)); } }; setStrategy(defaultStrategy); $(#strategies a).click(function () { setStrategy($(this).data(id)) }); /script> script srchttps://tk.garyun.cn/js/blueimp-file-upload/jquery.ui.widget.js>/script> script srchttps://tk.garyun.cn/js/blueimp-file-upload/jquery.iframe-transport.js>/script> script srchttps://tk.garyun.cn/js/blueimp-file-upload/jquery.fileupload.js>/script> script srchttps://tk.garyun.cn/js/blueimp-load-image/load-image.all.min.js>/script> script srchttps://tk.garyun.cn/js/clipboard/clipboard.min.js>/script> script> let allowSuffixes jpeg,jpg,png,gif,tif,bmp,ico,psd,webp; let maxSize 104857600; let pastedAction 1; /script> script> (new ClipboardJS(#copy-all, { text: function(trigger) { let text ; $(data-tab + $(#link-tabs a.active).data(tab-name) + p).each(function (i) { if (i ! 0) { text + \r\n; } text + $(this).text(); }); return text; } })).on(success, function(e) { if (! $(e.trigger).attr(disabled)) { let text $(e.trigger).text(); $(e.trigger).attr(disabled, true).text(复制成功); setTimeout(function () { $(e.trigger).attr(disabled, false).text(text); }, 1000); } }).on(error, function(e) { toastr.warning(复制失败) }); /script> script> const UPLOAD_WAITING 0; // 等待上传 const UPLOAD_SUCCESS 1; // 上传成功 const UPLOAD_ERROR 2; // 上传失败 let $previews $(#upload-preview); let $links $(#links-container); let $picker $(#picker); let queue ; // 文件队列 let excludes psd, tif; // 排除支持预览的格式 /** * 设置状态 * @param data * @param status * @param message */ const setStatus (data, status, message) > { queuedata.guid.status data.status status; let $info data.$preview.find(.upload-info); $info.removeClass(text-green-500 text-red-500) let msg ; switch (status) { case UPLOAD_WAITING: msg 等待上传; break; case UPLOAD_SUCCESS: msg 上传成功; $info.addClass(text-green-800); break; case UPLOAD_ERROR: msg 上传失败; $info.addClass(text-red-500) break; } $info.text(message ? message : msg); } $picker.fileupload({ url: https://tk.garyun.cn/upload, autoUpload: false, dataType: json, headers: { X-CSRF-TOKEN: $(metanamecsrf-token).attr(content) }, limitMultiFileUploads: 1, limitConcurrentUploads: 3, pasteZone: $(document), dropZone: $(#picker-dnd), formData: (form) > { return {name: strategy_id, value: $(#strategy-selected).data(id)}; }, paste: (e, data) > { let files ; $.each(data.files, function (index, file) { let name new Date().getTime().toString(); filesindex new File(file, name + . + file.name.substr(file.name.lastIndexOf(.) + 1), { type: file.type, lastModified: file.lastModified, }); }); data.files files; data.from paste; }, add: (e, data) > { // Return true to continue adding, otherwise terminate let file data.files0; let ext file.name.substr(file.name.lastIndexOf(.) + 1); if (allowSuffixes.indexOf(ext.toLowerCase()) -1) { toastr.warning(`不支持的图片格式 ${file.name}`); return true; } if (file.size > maxSize) { toastr.warning(`图片 ${file.name} 超出大小限制`); return true; } let guid utils.guid(); data.guid guid; // 推送到队列 let push function (blob) { let html $(#image-preview-tpl) .html() .replace(/__id__/g, guid) .replace(/__src__/g, blob) .replace(/__name__/g, file.name.replace(/\$/g, $$$$)) .replace(/__info__/g, utils.formatSize(file.size)); data.$preview $previews.append(html).show().find(`data-id${guid}`); queueguid data; setStatus(data, UPLOAD_WAITING); // 如果来源是否为粘贴,判断是否需要直接上传 if (data.from paste && pastedAction 2) { queueguid.submit(); } }; if (excludes.indexOf(file.name.substring(file.name.lastIndexOf(.) + 1).toLowerCase()) ! -1) { push(data:image/png;base64,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); } else { loadImage(file, function (img) { if (img.type error) { toastr.error(`文件 ${file.name} 缩略图生成失败`); console.error(Error loading image file) } push(img.toDataURL()) }, { maxWidth: 200, maxHeight: 200, meta: true, orientation: true, canvas: true }, ) } }, send: (e, data) > { data.$preview.find(data-operateupload).hide(); }, progress: (e, data) > { let progress parseInt(data.loaded / data.total * 100, 10); let $uploadInfo data.$preview.find(.upload-info); let $uploadProgress data.$preview.find(.upload-progress); let rate progress + %; $uploadInfo.text(上传中... + rate); $uploadProgress.css(width, rate); }, done: (e, data) > { let response data.result; if (response.status) { // 如果开启了自动清除缩略图功能 if (0) { delete queuedata.$preview.data(id); data.$preview.remove(); } else { setStatus(data, UPLOAD_SUCCESS) data.$preview.attr(uploaded, true); } // 追加链接 let links response.data.links; for (let key in links) { $(#links data-tab + key + ).append(p classwhitespace-nowrap select-all mt-1 bg-gray-50 hover:bg-gray-200 text-gray-600 rounded px-2 py-1 cursor-pointer overflow-scroll scrollbar-none> + linkskey.toString() + /p>) } $links.show(); utils.setCapacityProgress(response.data.size); } else { setStatus(data, UPLOAD_ERROR, 上传失败, + response.message); // 重新显示上传按钮 data.$preview.find(data-operateupload).show(); } }, fail: (e, data) > { if (data.errorThrown ! abort) { // 重新显示上传按钮 data.$preview.find(data-operateupload).show(); if (data.jqXHR.status 419) { return setStatus(data, UPLOAD_ERROR, 令牌错误,请刷新网页重试); } return setStatus(data, UPLOAD_ERROR, 服务端异常,请稍后重试); } }, // 等同于jq的complete always: (e, data) > { } }); $(document).on(drop dragover, (e) > e.preventDefault()); $previews.click((e) > e.stopPropagation()); $(#upload-all).click((e) > { // 队列中没有文件,选择则继续冒泡,选择文件 if (Object.values(queue).filter((item) > item.status ! UPLOAD_SUCCESS).length) { e.stopPropagation(); for (const key in queue) { if (queuekey.status ! UPLOAD_SUCCESS) { queuekey.submit(); } } } }); $previews.on(click, data-operate, function (e) { e.stopPropagation(); let $preview $(this).closest(data-id); let method $(this).data(operate); let id $preview.data(id); if (method remove) { queueid.abort(); delete queueid; $preview.remove(); } if (method upload && queueid.status ! UPLOAD_SUCCESS) { queueid.submit(); } if (method preview) { let file queueid.files0; if (excludes.indexOf(file.name.substring(file.name.lastIndexOf(.) + 1).toLowerCase()) -1) { let reader new FileReader(); reader.readAsDataURL(file); reader.onloadend function (e) { $(#preview-modal img).attr(src, e.target.result); Alpine.store(modal).open(preview-modal) } } } }); $(#clear).click(function (e) { e.stopPropagation(); queue ; $previews.html(); }); $(data-tab-name).click(function () { $(this).removeClass(active border-transparent) .addClass(active border-indigo-500) .siblings() .removeClass(active border-indigo-500) .addClass(border-transparent); $(data-tab).hide(); $(data-tab + $(this).data(tab-name) + ).show() }); $(#clear-all).click(function () { $(data-tab).html() $links.hide(); }); /script>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]