zoukankan      html  css  js  c++  java
  • 爬虫笔记之分析脚本之家在线工具的反盗用策略

    一、脚本之家的在线工具

    有时候开发了一款web在线使用的工具,比如类似在线base64编码解码之类的,或者其它的比较有意思的小工具,可能就被别人瞄上盗走源码据为己有了,为了与“盗码者”做斗争,开发者就想各种招数去保护自己的代码,脚本之家也有一套在线工具,使用了比较简单的方式去检测盗用代码,这次就来看下它们的方式。

    二、分析

    首先来简单的模拟一下代码被盗用的情况:

    package cc11001100.misc.crawler.tools51job;
    
    import cc11001100.misc.crawler.utils.HttpUtil;
    import spark.Spark;
    
    /**
     * @author CC11001100
     */
    public class Tools51jobServer {
    
    	public static void main(String[] args) {
    
    		String destSiteHost = "http://tools.jb51.net";
    		Spark.port(10086);
    		Spark.get("/*", (req, resp) -> {
    			return HttpUtil.request(destSiteHost + req.pathInfo(), null, response -> {
    				response.headers().forEach((k, v) -> resp.header(k, v));
    				byte[] responseBytes = response.bodyAsBytes();
    				if (response.header("Content-Type").contains("text")) {
    					return response.body().replace(destSiteHost, "http://localhost:10086");
    				} else {
    					return responseBytes;
    				}
    			});
    		});
    
    	}
    
    }
    

     然后打开localhost:10086,发现自动跳转到了http://tools.jb51.net/ ,查看网络请求:

    先是请求了一个doc,然后请求了几个css或js,然后又请求了另一个doc,这种情况基本可以确定是使用js重置了window.location.href实现的跳转,因为如果是302或301跳转的话是连续的两个doc,这个都不需要打开doc看response header,那么猫腻就是在这中间的几个请求中,于是果断搜索“window.location.href”,结果只搜到了一个结果还不在预想的这些请求中:

    查看了一下,是个无关的请求,那么基本可以确定设置window.location.href的js是被加密了的,一个一个翻了一下,找到了一个tongji.js,在其末尾部分有一段js:

     是eval加密的,想起来脚本之家就有个在线工具可以解密eval,于是复制拿去解密一下,得到很短的一小段js,格式化一下:

    var str = "tools.jb51.net";
    var thisurl = thisURL = window.location.host;
    if (thisurl.indexOf(str) < 0) {
        location.href = "http://tools.jb51.net";
    }
    

     可以看到,在js中会判断,如果当前页面不是脚本之家的域名的话,会直接跳转到脚本之家在线工具子站的首页,根据前面的eval关键词搜索一下,可以看到不止一个js文件中有这个检查:

     

    .

  • 相关阅读:
    【洛谷 1144】最短路计数
    【洛谷 1608】路径统计
    【洛谷 1491】集合位置
    【洛谷 3110】驮运 Piggy Back
    【洛谷 1734】最大约束和
    【洛谷 1910】L国的战斗之间谍
    【洛谷 1048】采药
    【洛谷 1186】玛丽卡
    GeoServer(地图服务器)
    git cherry-pick 教程
  • 原文地址:https://www.cnblogs.com/cc11001100/p/11631982.html
Copyright © 2011-2022 走看看