WriteUp
- 葡萄牙-签到
涨姿势
- 西班牙-666
- 波兰-父亲的信
- 法国-四六级查询
葡萄牙-签到
解题思路
最深不过套路?
WriteUp
签到题不用费太多心思,如果做不出肯定是懂的套路不够多
习惯性右键——源代码,并没有可疑的东西,页面上也没有,那F12看看?
西班牙-666
解题思路
代码审计,绕过就行
WriteUp
由条件:
1. $sss !== '0x666'
2. $sss == '0x666'
可知 $sss 的值需要等于数值 0x666,而又不能等于字符串 '0x666',其中涉及PHP的弱类型比较
3. if(!preg_match("/[^0-6]/",$sss)) $sss 只能包含 0--6 的数字
4. if(strlen($sss)==666) $sss 的长度等于 666
通过分析可知我们需要创建一个长度为 666 ,只包含0 -- 6的数字,数值上等于 0x666且不等于字符串 '0x666'的参数,所以我们用八进制就可以搞定了,创建 $sss = '00...03146'即可
import requests
url = 'http://pcat.cc/sss/?sss='+'0'*662+'3146'
html = requests.get(url)
print(html.content)
涨姿势点
刚开始看到 if(strlen($sss)==666)时就在想有这么长的url的么?当时直接否定了填充到666个长度的想法。
然后第一个条件想不到办法绕过,然后没有然后了。。
波兰-父亲的信
解题思路
与佛论禅
WriteUp
怎么看都是Base64,先解开这个,但解出来乱码
回想起题目,这应该是中文写的信,那么应该还要GBk编码,然后在用 '与佛论禅' 来解密
from base64 import * #引用自某人(作者没署名)
with open('letter.txt','r') as L:
a = L.read()
b = b64decode(a)
c = b.decode('GBK').encode('utf-8')
with open('out.txt','wb') as out:
out.write(c)
将解出来的中文解密即可
涨姿势点
与佛论禅?没想到是一种加密方式
法国-四六级查询
解题思路
划一下逆向的水,壳是混淆过的,用PEID等无法直接查出,我怎么知道什么壳的?我看了WP
WriteUp
其实是 .net 的壳,直接上工具就好了
先打开46.exe,然后打开工具选择46.exe,点一下那个老头就行
随便选一个exe扔进ILSpy
涨姿势点
ILSpy工具的简单使用