2561 分钟

# 函数 # mb_substr 截取函数 mb_substr( $str, $start, $length, $encoding )$str,需要截断的字符串$start,截断开始处,起始处为0$length,要截取的字数$encoding,网页编码,如utf-8,GB2312,GBK# mb_strpos 查找字符 返回匹配的字符第一次出现的位置。 mb_strpos($page, '?') $查找?在page第一次出现的位置
5791 分钟

# [极客大挑战 2019] EasySQL ** 考点:**sql 万能密码 用户名输入万能账户,使得 sql 检测语句通过。 # [极客大挑战 2019] EasySQL ** 考点:**http 参数传递 看注释,利用 get 传参,让 cat 变量值为’dog’。 # [ACTF2020 新生赛] Include 用 php 过滤器将 flag.php 加密,然后解密。 flag 存放在文件中,但是注释掉了,用 base64 加密后输出的字符就不会包含注释符了。 ?file=php://filter/read=convert.bas
6.1k6 分钟

当题目执行流程会跳转到可读写执行的地址时,我们就需要构造合适的 shellcode 来实现我们的目的。 “/bin”->rdi “/sh\0” syscall 机器码 execve 调用号 - rax rsi rdx 编码 \x2f\x62\x69\x6e \x2f\x7c\x68\x00 \x0f\x05 \x3b 0 0 16 进制 0x6e69622f 0x68732f 0x50f 0x3b 0 0 xor 31 30 30 36 31 30 30 5a 41 30 39 xor 48 52 59 58 48 53 58 5a 4
1.6k1 分钟

# 用户 # 用户组 管理员组 系统 管理员组 CentOS wheel ubuntu rhel # 操作 # 获取用户列表 cat /etc/passwd 以以下格式显示用户数据 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell # 添加用户 useradd 参数 adduser 参数 参数 实例 备注 -m 创建用户的登陆目录 -s -s /sbin/nologin 指定用户登陆后使用的 shell -g 指定用户所属群组 -G -G wheel 指定用户所属附属
1.1k1 分钟

# debug 可以使用 qemu 的 - g 指定端口 $ qemu-aarch64 -g 1234 -L /usr/aarch64-linux-gnu ./apollo然后使用 gdb-multiarch 进行调试,先指定架构,然后使用 remote 功能 在另外一个终端(上一个你也用不了)打开 gdb -multiarch $ gdb-multiarch ./apollo -q然后连接到端口进行远程调试 gdb-peda$ set architecture aarch64The target architecture is assumed to b
6.5k6 分钟

docker 使用 # 前言 docker 是一款精简的虚拟机。 image 镜像:储存固定的系统镜像。类似模板,类,或者类似 VMware 虚拟机的快照。 container 容器:从镜像生成出的实例。类似成品,对象,或者正常情况的 vmware 虚拟机。储存运行时的任何修改。 一个 image 可以生成出很多 container。container 可以保存为 image,然后供自己或他人后续使用。 # 包含 虚拟机包含的软件。 pwntools —— CTF framework and exploit development library pwndbg —— a GDB plug-i
50k46 分钟

# actf_2019_babyheap tcache dup libc-2.27_0ubuntu1_amd64 这道题除了地址随机,其他保护都开了。有 tcache dup 漏洞。 经典的使用块去管理用户块。管理块先存放用户块地址,然后存放输出函数地址。 释放块后形成块链,由于 tcache 只会清空 8 字节存放 fd,所以输出函数地址不会被清除。利用这点输出 tcache bin 链上某个块的地址,实现堆地址泄露。 构造 管理块 -> 管理块,在后者中输入块地址和 system 函数地址。输入的地址对应的块为存放 "/bin/sh\0" 字
501 分钟

# 查找 斜杠 / + 查找字符串,回车确定。 /string 按 n 下一个,N 上一个。
2.3k2 分钟

# 基础语句格式 # 语句 一行一句,无需结尾标志。 使用 ; 可在同一行执行多条语句。用 ; 将不同语句分割。 使用 | 管道符,将前一语句的结果作为后一语句的参数。 # 判断 判断条件需放在中括号内。 if 下一行接 then 表示开始执行满足条件时的代码。也可以接在同一行,并用 ; 分隔。 if [ "$obj" != "quit" ]then echo $objelse echo "Quit."fiif [ "$obj" != "quit" ]; then
9961 分钟

# 作用域 # 命名空间 namespace namespace_name { // 代码声明 } 引用命名空间内的变量。 namespace_name::code; # 导入命名空间 使得后续代码在引用该命名空间时无需添加前缀。 导入整个命名空间 using namespace namespace_name; 仅导入命名空间部分变量或方法。 using std::cout; # 嵌套的命名空间 命名空间可以嵌套,可以在一个命名空间中定义另一个命名空间。 namespace namespace_name1 &