0%

修改注册表

运行regedit,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout项下新建二进制键,命名为ScanCode Map,右键修改。

  1. 开头第一行固定00 00 00 00 00 00 00 00
  2. 填充xx 00 00 00,其中xx为映射数目
  3. 填充要替换的字节。替换后的子节在前,替换前的子节在后,例如A替换为B,则填充为BA
  4. 全部填充完毕后填充00 00 00 00结束

Capslock 映射到 ESC

1
2
3
00 00 00 00 00 00 00 00
02 00 00 00 01 00 3A 00
00 00 00 00

(ESC仍是ESC)

键位表

字节码 键位
00 00 None
01 00 Esc
02 00 1
03 00 2
04 00 3
05 00 4
06 00 5
07 00 6
08 00 7
09 00 8
0a 00 9
0b 00 0
0c 00 -
0d 00 =
0e 00 Backspace
0f 00 Tab
10 00 Q
11 00 W
12 00 E
13 00 R
14 00 T
15 00 Y
16 00 U
17 00 I
18 00 O
19 00 P
1a 00 [
1b 00 ]
1c 00 Enter
1d 00 Left Ctrl
1e 00 A
1f 00 S
20 00 D
21 00 F
22 00 G
23 00 H
24 00 J
25 00 K
26 00 L
27 00 Semicolon
28 00 '
29 00 ```
2a 00 Left Shift
2b 00 \\
2c 00 Z
2d 00 X
2e 00 C
2f 00 V
30 00 B
31 00 N
32 00 M
33 00 ,
34 00 .
35 00 /
36 00 Right Shift
37 00 n*
38 00 Left Alt
39 00 Space
3a 00 Caps Lock
3b 00 F1
3c 00 F2
3d 00 F3
3e 00 F4
3f 00 F5
40 00 F6
41 00 F7
42 00 F8
43 00 F9
44 00 F10
45 00 Num Lock
46 00 Scroll Lock
47 00 n7
48 00 n8
49 00 n9
4a 00 n-
4b 00 n4
4c 00 n5
4d 00 n6
4e 00 n+
4f 00 n1
50 00 n2
51 00 n3
52 00 n0
53 00 n.
57 00 F11
58 00 F12
1c e0 nEnter
1d e0 Right Ctrl
37 e0 PrtSc
38 e0 Right Alt
47 e0 Home
48 e0 Up
49 e0 Page Up
4b e0 Left
4d e0 Right
4f e0 End
50 e0 Down
51 e0 Page Down
52 e0 Insert
53 e0 Delete
5b e0 Left Windows
5c e0 Right Windows

windows安装zsh

windows无法直接安装zsh,需要借助其他环境安装。
本篇文章借助git-bash安装zsh
下载zsh安装文件,下载的压缩文件可以使用解压工具解压。
将解压后的文件放到git根目录。
现在可以在git-bash终端下执行zsh进入zsh
接下来安装oh-my-zsh

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

vscode集成zsh

在配置文件setting.json中添加下列配置:

1
2
3
4
5
6
7
8
9
10
11
"terminal.integrated.defaultProfile.windows": "zsh",
"terminal.integrated.profiles.windows": {
"zsh": {
"overrideName": true, // 用zsh覆盖终端名称(可选)
"path": "D:\\Program Files\\Git\\bin\\bash.exe", // 此处为bash的路径
"args": [
"-c",
"zsh"
]
}
}

说明

git fork 远程仓库时的操作。

fork仓库: user_dalao/repo.git
fork仓库: user_me/repo.git

Git 跟踪远程

拉取远程仓库代码

1
git clone user_me/repo.git

添加fork仓库为远程仓库(从自己的仓库拉取下来默认是远程仓库,一般会用于推送到远程空仓库)

1
git remote add origin user_me/repo.git

指定本地branch-name分支跟踪远程branch-name分支(一般用于创建新分支时,推送到远程分支后同步更改)

1
git branch --set-upstream branch-name origin/branch-name

Git 跟踪上游

1
2
3
git remote add upstream user_dalao/repo.git
// 同步上游内容
git fetch upstream

错误

ValueError: check_hostname requires server_hostname
检查是否使用了代理,关掉代理。

SQL注入

  • 原理
    用户在输入中混入SQL命令,改变SQL语句本来的逻辑。

  • 防御

    • 匹配用户输入(长度,关键字,逻辑逻辑改变)
    • 检查语句规范,拦截异常SQL语句
    • 记录数据库异常
    • 正则表达式算法

SSRF

  • 原理
    服务器从其他服务器应用获取数据但没有对目标地址做过滤与限制,攻击者可以伪造服务端发起请求,对服务器进行攻击。(内网)

  • 防御

    • 输入参数来自用户,且为内网IP,判定为SSRF攻击
    • 检查常见探测域名
    • 检测私有地址
    • 检查混淆(如:改变进制)
    • 检查特殊协议

url重定向

  • 原理
    通过url重定向使用户访问其他网站,常用于钓鱼。

防御同SSRF

文件下载

  • 防御
    • 用户输入匹配
    • 用户输入匹配+http协议
    • 拦截异常协议
    • 禁止访问项目外文件
    • 文件探针

文件写入

  • 防御
    • 拦截NTFS::$DATA写入操作
    • 拦截脚本文件写入操作
    • 拦截通过反射、反系列化执行的文件写入操作

文件删除

  • 原理
    服务器未对用户输入进行限制,用户可以输入服务器文件路径,服务器对其进行解析后会删除服务器中的文件。

  • 防御

    • 用户输入匹配,禁止../

文件重命名

  • 防御
    • 通过重命名方式获取WebShell

文件管理器(文件目录?)

  • 防御
    • 用户输入匹配
    • 通过反射调用查看目录
    • 查看敏感目录

文件包含

  • 原理
    利用一些文件包含函数(如includerequire等)读取其他文件。

  • 利用方式

    • 读取服务器文件
    • 包含远程文件对服务器进行攻击
  • 防御

    • 用户输入匹配
    • 检查特殊协议

文件上传

  • 原理
    利用服务器对文件上传漏洞或者服务器对文件的解析规则漏洞,用户可以通过向服务器上传攻击性的文件,服务器对其解析后执行文件。

  • 常见绕过审核方式

    • 改文件后缀名绕过检查
    • 上传正常拓展名文件后对数据抓包进行修改
    • 在正常文件内容中嵌入攻击语句
    • 0x00截断
    • 多个filename属性混淆
  • 防御措施

    • 通过COPY/MOVE方式上传脚本
    • Multipart方式上传脚本HTML/JS/DLL/EXE等文件

XXE

  • 原理
    在DTD中引用外部XML实体构造恶意内容,可以进行读取文件内容或执行恶意命令等一系列攻击行为。

  • 防御

    • 禁用外部实体加载
    • 使用异常协议加载外部实体
    • 使用file协议读取内容
    • 过滤关键字<!DOCTYPESYSTEM

命令注入

  • 原理
    程序中不安全使用命令执行函数(如:execsystempassthrueval等),用户可以用来执行攻击语句。

  • 防御

    • 通过反射执行命令
    • 匹配用户输入
    • 识别常用渗透命令(探针)
    • 查找语法错误和敏感操作
    • 记录或拦截所有命令执行操作

XSS

  • 原理
    用户将恶意代码写入网页,可以获取被攻击者在目标网站上的cookie等重要信息。

  • 类型

    • 反射型
      写入攻击代码,一次性攻击。
    • 存储型
      将攻击代码储存到服务器文件或数据库中,每次重新请求页面时都会执行攻击代码。
  • 防御

    • 拦截输出在响应里的反射XSS
    • (PHP)禁止直接输出GPC参数
    • (PHP)拦截PHP[中国菜刀|命令执行|文件上传|array_map/walk/filter|LD_PRELOAD]后门

镜像

阿里云https://mirrors.aliyun.com/pypi/simple/
中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

临时换源

pip(3) install [something] -i [src]

例如 pip3 使用 清华源 安装 numpy

pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/

永久换源

  • Linux

    编辑 ~/.pip/pip.conf

  • Windows

    编辑 C:\Users\user_name\pip\pip.ini

1
2
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

安装 git

  • 安装 git

    sudo apt install git-core

  • 第一次使用要先设置 git 的用户名和邮箱

    git config --global user.name 'your_name'
    git config --global user.email 'your_email@example.com'

注册 github 账户

  • 注册 github 账户

添加 SSH 公匙

  • 创建 SSH key

    ssh-keygen -C "your_email@example.com"

    接下来几次询问密码
    建议连续回车
    默认将 key 存到用户文件下~/.ssh/

  • ~/.ssh/id_rsa.pub中的内容粘贴到 github 的 SSH key 中

  • 可以通过下指令测试链接

    ssh -T git@github.com

前言

Git 仓库一不注意就变得十分臃肿,很多不想跟踪的文件都留在历史记录里没有删除。

原地址 https://www.jianshu.com/p/fe3023bdc825

查找占用空间最大的文件

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

从 git 中移除

big_file_name 为要移除的文件
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch big_file_name' --prune-empty --tag-name-filter cat -- --all

真正删除

rm -rf .git/refs/original/

git reflog expire --expire=now --all

git gc --prune=now

git gc --aggressive --prune=now

取消跟踪某个文件

git rm --cached filename

提交到远程

git push origin master --force

git remote prune origin

安装 MS 字体

说明

写论文时要求英文字体为Times New RomanArial
这两种字体为 MS 字体,
Linux 系统并没有自带,
需要自己安装。

注意:Microsoft 已免费发布其核心字体,但请注意 Minrosoft 字体是禁止使用在其他操作系统中
在任何 Linux 操作系统中安装 MS 字体之前请仔细阅读 EULA。

安装

sudo apt install ttf-mscorefonts-installer

会有较为良好的安装引导界面。
安装完成后更新字体缓存:

sudo fc-cache -f -v

安装 Monaco 字体

说明

写论文时希望给附录代码安排个美观的字体,
搜了一下也就 Mac 的 Monaco 字体看着顺眼。

下载

Monaco 下载
[Monaco Nerd Font 下载](/download/Monaco Nerd Font.zip)