强大的正则表达式——Hard

由前两篇文章《Easy》中提到过的:

还是先相信一下AI,让AI写个生成满足难度3的正则表达式的python代码,但还是出错了,还是不能什么都指望AI


了解了一下相关知识,CRC本质上是多项式除法,所以同样可以得到对应的有限状态机,再转换为正则表达式。然而,由于和上一小题略有区别的是,初始状态为7与终止状态0不同,这使得我们的生成代码也需要略加修改。

复制代码
import pwn
import libscrc

# 定义 token
token = b"531:MEYCIQDHL9dv6rPhZXD7kTqsNQhOCMdkSDmQ9lwfWCGlJGX9WwIhAIRyevrdkoLnKaHDBDnUCADQ9Yt0R6nf5irm5hQwDTiI"

# 构建状态转移矩阵
paths = [[set() for _ in range(8)] for _ in range(8)]

# 生成状态转移路径
for i in "0123456789":
    for j in "0123456789":
        # 计算单个字符和两个字符的CRC值
        crc_i = libscrc.gsm3(i.encode())
        crc_ij = libscrc.gsm3((i + j).encode())
        # 添加状态转移路径
        paths[crc_i][crc_ij].add(str(j))

# 定义路径合并函数
def path_union(lst):
    return "(" + "|".join(lst) + ")"

# 定义状态列表
states = [0, 7, 6, 5, 4, 3, 2, 1]
state_count = 8

# 消除中间状态,构建最终的正则表达式
while state_count > 2:
    target = states[state_count - 1]
    loop = ""
    if len(paths[target][target]) > 0:
        loop = path_union(paths[target][target]) + "*"
        # 擦除状态后重写相关的边
    for i in states[:state_count - 1]:
        for j in states[:state_count - 1]:
            if len(paths[i][target]) > 0 and len(paths[target][j]) > 0:
                paths[i][j].add(path_union(paths[i][target]) + loop + path_union(paths[target][j]))
    state_count -= 1

# 最后剩下起始和结束状态时手动拼接
regex = path_union([
    path_union(paths[7][7]),
    path_union(paths[7][0]) + path_union(paths[0][0]) + "*" + path_union(paths[0][7])
]) + "*" + path_union(paths[7][0]) + path_union(paths[0][0]) + "*"

# 建立网络连接
conn = pwn.remote('202.38.93.141', 30303)
conn.send(token)
conn.send(b"\n")

# 选择难度级别
conn.recvuntil(b"(1~3): ")
conn.send(b"3\n")

# 发送正则表达式
conn.recvuntil(b"regex: ")
conn.send(regex.encode())
conn.send(b"\n")

# 进入交互模式
conn.interactive()

成功得到flag

相关推荐
云水一下5 天前
零基础玩转bWAPP靶场(七十一):Slow HTTP DoS(慢速HTTP拒绝服务)
web安全·bwapp·slowhttptest
XUEYUAN52125 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
TechEdu2026066 天前
[人工智能]人工智能时代的零日漏洞与零日攻击
人工智能·网络安全·ai·信息安全
程序员若风6 天前
CSRF攻击原理介绍和利用-腾讯云开发者社区
前端·网络·安全·web安全·网络安全·csrf攻击·腾讯云开发者社区
菩提小狗6 天前
每日安全情报报告 · 2026-09-21
网络安全·漏洞·cve·安全情报·每日安全
小白快快跑哦6 天前
python-字符串全解(六):正则表达式-转义与非转义
python·正则表达式·转义与非转义
数安旭说6 天前
从“堆叠工具”到“一体化治理”:端点安全的技术演进与实践观察
网络安全·系统架构·数据安全·企业安全·端点安全·防泄密·一体化管理
白猫不黑6 天前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
迪康Defender6 天前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理