0%

参考https://cloud.tencent.com/developer/article/1786102

使用extract-stealth-evasions,github地址:https://github.com/berstend/puppeteer-extra/tree/master/packages/extract-stealth-evasions
需要安装node环境,直接使用npm

1
npx extract-stealth-evasions

生成stealth.min.js

然后在selenium启动时,将其作为自定义脚本执行,加入以下的代码

1
2
3
4
5
6
7
8
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=chrome_options)
with open("stealth.min.js") as f:
js = f.read()
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": js
})

如果是使用的remote的chromedriver,可以使用如下代码,参考https://github.com/SeleniumHQ/selenium/issues/8672#issuecomment-699676869

1
2
3
4
5
6
7
8
9
10
11
12
def send(driver, cmd, params={}):
resource = "/session/%s/chromium/send_command_and_get_result" % driver.session_id
url = driver.command_executor._url + resource
body = json.dumps({'cmd': cmd, 'params': params})
response = driver.command_executor._request('POST', url, body)
print(response)
return response.get('value')

def add_script(driver, script):
send(driver, "Page.addScriptToEvaluateOnNewDocument", {"source": script})

add_script(self.root_driver,js)

在电脑上安装adb,然后连接上手机,确认手机进入了开发者模式,并且允许use调试

然后adb shell确认能够进入到对应的收集的shell

然后在手机上运行freeotp软件,然后使用下列命令导出freeotp相关,需要在手机上确认

1
adb backup -f freeotp.ab -noapk org.fedorahosted.freeotp

然后使用dd命令

1
dd if=freeotp.ab bs=1 skip=24 > compressed-data

最后在重写其header使我们能够解析他

1
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - compressed-data | gunzip -c > decompressed-data.tar

然后将其解压即可

1
tar -xvf decompressed-data.tar

即可找到其中的tokens.xml文件

然后即可使用https://github.com/viljoviitanen/freeotp-export中提供的工具,将tokens.xml上传,即可出现对应的二维码,然后将其导入到其他工具中即可。
另也可以在得到freeotp.ab之后直接上传

win10恢复删除的文件的使用的工具是微软提供的官方工具,可以参考链接 https://support.microsoft.com/zh-cn/windows/%E5%9C%A8-windows-10-%E4%B8%8A%E6%81%A2%E5%A4%8D%E4%B8%A2%E5%A4%B1%E7%9A%84%E6%96%87%E4%BB%B6-61f5b28a-f5b8-3cc2-0f8e-a63cb4e1d4c4

在恢复时分为两种情况:

  • 将文件移入到了回收站,然后清空了回收站
  • 直接在文件的原始目录中将其删除掉了

两种情况的恢复方式略有不同,但是总体思路是一样的。

阅读全文 »

前言

相关代码进攻技术交流使用,禁止用于任何商业盈利用途,该代码造成的后果和本人无关。

背景

在反爬时,尝尝会遇到一些cookies相关的反爬,如果直接使用请求工具请求的话,是会被拦截住,导致无法爬取内容,因此需要js的环境来执行这些代码,设置正确的cookies从而能够访问到网站。

方法

使用chrome的油猴插件(直接搜索油猴插件安装即可),自定义一个cookies的hook函数,在有代码设置cooklies值的时候进行debug,从函数的调用栈中即可得到该cookies的生成流程,然后反向破解,即可得到cookies的生成方法。

下面就是这段cookies hook的代码,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(function () {
'use strict';
var cookie_cache = document.cookie;
Object.defineProperty(document, 'cookie', {
get: function() {
console.log('getcookie');
debugger;
return "";
},
set: function(value) {
console.log('setcookie', value);
if (value.indexOf('想要破解的cookies名') != -1) { // 修改名字
debugger;
}
return value;
},
});
})();

在油猴中新建一个用户脚本,然后将其复制到脚本中,在目标网站清空所有的cookies,然后打开开发者工具,刷新页面,等待页面刷新,则当代码在设置我们制定的值时就会进入debug状态,这时我们可以通过函数的调用栈,一层层的找,从而找到cookies的生成方式

前言

ssh隧道代理是一种非常有用的工具, 通过ssh隧道代理,即可利用已有的ssh连接访问到远程服务器或者内网内的一些服务,对于开发中调试和测试应用非常方便,只需要ssh客户端即可,无需其他任何的额外工具。

阅读全文 »

在编写bash脚本时有一些通用的起手式

1
2
3
4
5
6
7
8
#!/usr/bin/env bash

#当使用了未初始化的变量时,设置set -u 或 set -o nounset,可以让程序强制退出
set -u
# set -o errexit 或set -e 一旦有任何一个语句返回非0值,则退出bash
set -e
#将每行执行的命令输出,set -o xtrace或set -x
set -x

使用k8s的kustomize工具,生成configmap时,或者直接从file创建configmap时,有时会遇到一个问题,
就是configmap中对应文件的内容直接被解析为一个大的字符串,换行符都变为了\n的显示,

1
2
data:
key: "header\n11"

而我们期望的格式是

1
2
3
4
data:
key: |-
header
11

参考此链接的解决方法,https://stackoverflow.com/questions/51291521/kubernetes-configmap-prints-n-instead-of-a-newline
将文件中的tab换成空格,并去除掉行尾多余的空格即可。
使用以下命令

1
2
sed -i -E 's/[[:space:]]+$//g' collect_disk_fault.sh
sed -i 's/\t/ /g' collect_disk_fault.sh

再次生成configmap即可得到我们想要的格式

首先克隆一下对应的git repo

1
git clone https://github.com/rofl0r/proxychains-ng.git

然后即可编译安装

1
2
3
4
./configure --prefix=/usr --sysconfdir=/etc
sudo make
sudo make install
sudo make install-config

如果出现了symbol lookup error: ./libproxychains4.so: undefined symbol: pthread_once相关的错误

可以尝试将编译生成的libproxychains4.so拷贝到/usr/local/lib下面,即可解决问题