根据相关法律法规,本站不对欧盟用户提供服务。

MENU

Tags: python

故意踩坑式写脚本——简单检测 TCP 连接

墙换成 TCP 阻断的模式以后,就没法想以前那样用多地 ping 的方式检测,只好自己手写一个 TCP 连接来判断。本来可以很轻松的搞定,但写的时候故意放了一些啰嗦的东西在里面,强迫自己多了解几个不同的场景。

成品

Read More

基于 Python 的 Josephus 问题解法

Josephus 问题:假设有 n 个人围坐一圈,现在要求从第 k 个人开始报数,报到第 m 个数的人退出。然后从下一个人开始继续报数并按同样的规则退出,直至所有人退出。要求按顺序输出各出列人的编号。

Read More

利用 pwntools 编写 socket 脚本

今天遇到了一道 ppc 的题目,并不难,连接服务器端口后,计算返回的一个算式,发送答案,连续答对十次拿到 flag。

这一操作一般是利用 Python 的 socket 编程实现,后来看到有人说用 pwntools 也可以做,就尝试了一下。

先放正常的 socket 编程脚本。

Read More

从一道 CTF 题学到的几个 Python 字符串处理 tricks

汪神的 Javis OJ 上了几道新题目,其中有一道 CFF 2016 的 “德军密码” 做了挺长时间的。原理也不难,就是一个异或加密,但是写脚本的时候学到了一点 Python 字符串处理的一些小技巧。

题目解析

已知将一个flag以一种加密形式为使用密钥进行加密,使用密钥WELCOMETOCFF加密后密文为
000000000000000000000000000000000000000000000000000101110000110001000000101000000001
请分析出flag。Flag为12位大写字母

密文很明显是二进制码,而一个字节 8 位,12位大写字母应该是 96 位的密文才对,而给出的密文只有 84 位,可能是做过处理,补个 0 看看吧。将密钥与补位后的密文异或一下就可以拿到 flag 了,还是挺简单的。

Read More

Python 识别简单验证码

最近做题的时候碰到好几道 WEB 都需要验证码识别,如果是爆破,那么 PKAV 的 Http Fuzzer 就可以了,但如果题目更变态一点,需要做复杂的操作,那个简单的 Fuzzer 就没办法了,还是得自己写脚本。

依赖

识别验证码,肯定需要图像库 PIL ,还需要一个可以做简单识别的库 pytesseract ,毕竟只是做个题,总不能自己训练一个出来,没那功夫。

再吐槽一下 windows 这个坑,pip 没法安装 PIL ,下了二进制包安,用的时候各种报错,网上说还需要 32 位,64 位一起装。。。

Read More