我的GitHub
0%

md5绕过

php的代码审计总有这种比较,记录一下

php中的强弱比较(和js挺像的)

强比较

强比较(全等比较符===):强比较要求比较的两个值不仅是值相等,而且类型也必须相等。只有当值和类型都相等时,才会返回 true。

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$a = 5;
$b = "5";

if ($a === $b) {
  echo "相等";
} else {
// 输出这行
  echo "不相等";
}

?>

php中的弱比较

弱比较(相等比较符==):弱比较只要求比较的两个值在转换类型后相等即可。如果两个值的类型不同,会尝试将其中一个值转换为另一个值的类型。例如:

1
2
3
4
5
6
7
8
9
10
11
<?php
$a = 5;
$b = "5";

if ($a == $b) {
  //输出这行
echo "相等";
} else {
  echo "不相等";
}
?>

上述代码中,比较结果相等,由于 $b 是字符串类型,因此 $a 将被自动转换为字符串类型后再进行比较。

阅读全文 »

只能本地访问

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
阅读全文 »

背景

我有一台外网电脑,还有一台内网电脑,内网的镜像源全靠人手工上传包,且平时几乎不更新,所以包的版本都很低。

我喜欢做一些简单的工具,仅自己使用,而且我喜欢用最新的版本,内部的源无法满足我的需求。

而且,我平时是使用pnpm管理。

那么接下来,我来介绍几种方式,以应对这个情况。

方式一

针对使用yarnnpm包管理器的,非常简单,整个node_modules搬进去就行了。

方式二

使用tar

访问淘宝镜像站点https://npmmirror.com/

阅读全文 »

密码学入门,我们介绍一些简单的密码

brainfuck

这是一个完备的图灵语言

Brainfuck基于这样一台机器。它具有一列初始化为0的数组(数组长度最初要求是30,000,但这个标准不是必要的)和一个初始指向第一个元素的指针。

该语言总共只有8个命令,除此之外所有其他字符都会被忽略

1
><+-.,[]

所以看到了这八个字符组成的,就是brainfuck

命令 功能 C语言
> 指针右移一个元素 p++;
< 指针左移一个元素 p–;
+ 指针当前所指元素加1 *p++;
- 指针当前所指元素减1 *p–;
. 输出指针所指元素对应字符 putchar(*p);
, 输入字符的ASCII码值到指针所指元素 *p=getchar();
[ 若指针所指元素为0,则跳转到对应 ‘]’处继续执行 while(*p){
] 若指针所指元素不为0,则跳转至对应 ‘[‘处继续执行 }

其实说那么多,也不会自己动手算,让我们上工具

brainfuck

阅读全文 »

内网渗透的流程

1.信息收集,寻找漏洞

2.找到漏洞,进行注马

3.获得shell

4.如果需要,则提权

5.查看网卡信息

6.打洞

7.链接并反弹shell,进行查询,寻找域管理用户,横向移动域控

8.可以查询远程权限并进行远程,后面想做什么都行了,主打一个为所欲为

内网扫描

阅读全文 »

背景

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

但是问题是这样的

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

内网的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去装个虚拟机吧)

阅读全文 »

背景

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

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

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

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

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

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

各种包管理工具下的迁移

运气比较好

本文成于2023.8.20

阅读全文 »

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

可以使用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>
阅读全文 »

文件上传是个经典问题

推荐靶场:upload-labs

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

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

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

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

一.啥防护没有

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

二.前端文件后缀判断

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

阅读全文 »