0%

解压

解压得到四个文件,有一个public.key和三个加密过的文件,于是先把p和q解出来

得到e和n

openssl rsa -pubin -text -modulus -in warmup -in public.key
得到

1
2
Exponent: 65537 (0x10001)
Modulus=D99E952296A6D960DFC2504ABA545B9442D60A7B9E930AFF451C78EC55D555EB

使用yafu分解,得到p和q

1
2
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983

求出d

使用gmpy

解密并打印出flag

使用rsa模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import rsa

n = 0xD99E952296A6D960DFC2504ABA545B9442D60A7B9E930AFF451C78EC55D555EB
e = 0x10001
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983
d = 0x4547B732CBC3527104CB57C4728D6899B44C4994FAE2713D6B594BC0F522A41
ret = ""
privatekey = rsa.PrivateKey(n , e , d , p , q)
with open("encrypted.message1" , "rb") as f:
ret += (rsa.decrypt(f.read(), privatekey).decode())
with open("encrypted.message2" , "rb") as f:
ret += (rsa.decrypt(f.read(), privatekey).decode())
with open("encrypted.message3" , "rb") as f:
ret += (rsa.decrypt(f.read(), privatekey).decode())
print(ret)

得到

1
2
3
flag{3b6d3806-4b2b
-11e7-95a0-
000c29d7e93d}

去掉回车得到最终flag

不使用rsa模块

其实就是自己实现rsa.decrypt中的转换16进制操作
以第一个文件为例,解密出来转化为16进制:
25a8007e9ad2809abbf5a00666c61677b33623664333830362d346232620a
位数为奇数,所以左边补0,得到
025a8007e9ad2809abbf5a00666c61677b33623664333830362d346232620a
转换为ascii码得到
Z��( ��Z�flag{3b6d3806-4b2b

剩下文件同理

参考

i春秋第二届春秋欢乐赛RSA256writeup

Hello World

观察

浏览器打开,只有一个Hello, World!
查看源代码看到有个

1
<script src="flag.xmas.js"></script>

结果没有该文件,尝试打开flag.js,看到混淆过的js,全选复制,放到控制台运行,得到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var Key = "7a57a5a743894a0e";
CryptoJS.pad.Iso10126 = {
pad: function(data, blockSize) {
var blockSizeBytes = blockSize * 4;
var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1))
},
unpad: function(data) {
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
data.sigBytes -= nPaddingBytes
}
};
var aesEncrypt = function(data, keyStr, ivStr) {
var sendData = CryptoJS.enc.Utf8.parse(data);
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var encrypted = CryptoJS.AES.encrypt(sendData, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Iso10126
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
};
var aesDecrypt = function(data, keyStr, ivStr) {
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var decrypted = CryptoJS.AES.decrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Iso10126
});
return decrypted.toString(CryptoJS.enc.Utf8)
};
var hint = "SSNRTPIuHLUxqtJmq8mDDPtexRU7RTjNO34tLqz+Tpw=";
阅读全文 »

概述

Adobe Flash Player 从 30 版本开始,中国大陆地区用户只能使用特供版
后台存在广告服务、弹出广告窗口、捆绑流氓软件的行为。
由于有的网站只能用flash,而安装国际版flash又提示地区不符,所以需要找个办法解决。

解决方案

安装直装版(由roustar31制作)

运行程序后,会卸载原版flash再自动安装。

IE浏览器使用AX版本
Chrome系浏览器及QQ使用PPAPI版本
Firefox或其他使用NPAPI版本

PS:若安装后仍无效,请使用压缩包中的文件替换系统及浏览器的pepflashplayer.dll(具体路径自行搜索)

下载地址

直装版

https://lanzous.com/b00e2zxej
密码:gz09

补丁

https://lanzous.com/b00dx336j
密码:f0ph

来源

Adobe Flash Player AX/NP/PP 特别版

问题

使用pygame开发游戏(完成作业时),VS Code总是在pygame处报E1101错误,刚开始设置的python.linting.mypyArgs毫无用处

1
"python.linting.mypyArgs": ["--disable=E1101",]

解决

继续谷歌一下,找到vs code中pylint报错E1101问题的解决
于是设置python.linting.pylintArgs参数,值为”–generate-members”,总算解决了这个问题

修改settings.json代码

1
"python.linting.pylintArgs": ["--generate-members",],

原因

函数或值是动态被设置的,而pylint的推断系统里没有该值,因此触发了E1101报错。可以通过配置 generate-members 参数来避免此类报错。

思路

获取到cookie后转化为dictionary(使用requests.utils.dict_from_cookiejar方法转化CookieJar为dictionary),再以字符串形式保存到文件
读取时把字符串转换为字典(json.load方法),再设置为requests请求的cookies

注意

这里有个坑,保存到文件时是单引号,使用json读取时需要双引号,所以需要replace一下

代码

保存

1
2
3
4
5
6
#转换为dictionary
load_cookies = requests.utils.dict_from_cookiejar(res.cookies)
#转换为字符串保存到文件
fo = open("cookie", "w")
fo.write(str(load_cookies))
fo.close()

读取

1
2
3
4
##读取文件内容到text变量后
#转换为dictionary
dic = json.loads(text.replace("'","\""))
res = requests.post(url,cookies=dic)

参考

Python——Cookie保存到本地

概述

服务器恢复快照以后,一大堆东西都要重新安装。
安装PyCrypto时发生错误,提示
Python.h: No such file or directory
于是 首先执行 yum upgrade,升级下试试
然而还是编译错误,所以肯定是没有安装依赖

解决方案

查了一下是没安装开发环境(然而之前好像是可以直接编译的。。)
python-devel已安装,然而搜不到python3-devel
于是搜索python3,找到了python36u-devel
yum install python36u-devel
安装后编译成功

参考

Centos7 “fatal error: Python.h: No such file or directory “commmand ‘gcc’ failed with exit status 1