
前言有师傅问我如何在Yakit中添加插件。我之前说没办法添加因为yakit浏览器是免配置而不是内置。并且yakit的参数中–load-extension是不可配置、不可删除的。正常来说是没办法的但我们的本职工作是什么呢况且Yakit的限制就在本地那不是想怎么玩弄就怎么玩弄。下面我给了两种解决办法。师傅们可以根据需要选择。修改数据库添加插件效果演示第一次失败的尝试打开yakit目录下的sqlite数据库yakit-profile-plugin.db在数据表general_storages的key字段寻找”chrome-launcher-params”该字段的值就是我们配置chrome参数的地方。我们找到–load-extension–disable-extensions-except在它们的variableValues中添加插件路径比如“D:\yakit_pro1\Yakit\yakit-projects\google-chrome-plugin,D:\programs\chrome-plugins\my-fingerprint-chrome-v2.5.0”保存重新打开Yakit配置诶怎么没有变化经过我多次的控制单一变量进行测试不管怎么改都是上图的值。我怀疑是Yakit对这两个参数进行了限制。第二次尝试成功直接修改这两个参数不行我把思路转向添加新参数上通过创建新参数能不能覆盖老参数呢很遗憾Yakit在客户端对我们的输入校验的比较严格。chrome添加命令参数的形式如下chrome.exe --disable-featuresTranslateYakit是调用系统中的浏览器的最后的拼接方式也一定是类似上面这种。在不影响使用的情况下在参数名中的前方添加空格能不能绕过呢还是不行依然提示存在相同的参数名。Yakit在前端的校验确实严格但是它从数据库拿出数据后是否一样严格校验呢就像SQL注入中的二次注入一样Yakit对于从数据库中拿到的参数名并未进行严格校验而是直接拼接到chrome中。演示先禁用添加两个新参数参数名随意方便你能在一大堆值里搜到就行。参数值为chrome插件地址比如D:\programs\chrome-plugins\my-fingerprint-chrome-v2.5.0,D:\yakit_pro1\Yakit\yakit-projects\google-chrome-plugin不同插件地址间用,分隔修改数据库将两个参数名修改成–load-extension–disable-extensions-except记住前面的空格要不要忘了。复制到数据库中保存。重新查看更多参数看到添加成功此时之后我没太细究可以直接在这两个参数中添加其他插件路径了。比如D:\programs\chrome-plugins\ddpocchrome之后在浏览器中就会显示其他方法既然yakit浏览器是通过配置命令行达到的效果那我自己把这些命令行复制出来修改这加载插件的参数值不就行了。效果演示和原版简直一模一样添加插件Yakit 启动免配置访问 chrome://version/复制命令行修改其中的–proxy-bypass-list-loopback为–proxy-bypass-list“-loopback”复制到yakit-chrome.bat脚本中可以看到启动后的浏览器和在yakit中启动的一样接下来我们添加插件将插件的路径填充在–load-extension和-disable-extensions-except中。以my-fingerprint-chrome为例–load-extensionD:\programs\chrome-plugins\my-fingerprint-chrome-v2.5.0,D:\yakit_pro1\Yakit\yakit-projects\google-chrome-plugin --disable-extensions-exceptD:\programs\chrome-plugins\my-fingerprint-chrome-v2.5.0,D:\yakit_pro1\Yakit\yakit-projects\google-chrome-plugin重新启动bat可以看到浏览器中成功加载my-fingerprint-chrome插件。总结一个系统在设计的时候往往是对外不信任对内信任的。即对用户的输入进行严格校验对于从其他服务器、数据库获取的数据认为是可信的并未进行过多校验。SQL注入中的二次注入就是基于这种想法导致的。本次直接修改Yakit的数据库也是基于此类想法。