本文主要是介绍CTF 大小写字母转换 try lower and upper,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天做CTF练习题的时候碰到这样一道题,挺有趣的,记一下。
题目只有一个加密压缩包,里面就有一个flag.txt的文件,显然就是需要设法破解出这个压缩包的密码。
另外题目有一句话写着trylowerandupper。直译就是试试小写和大写。直接用这个作为密码,发现无效,全部转成大写,发现也无效。
想了一下,可能正确的密码应该就是把这句话的部分字母改成大写,部分字母改成小写。那么我们的思路就是去生成这样的一个字典,然后用跑字典的软件ARCHPR去跑一下。
trylowerandupper这句话共有16个字母,每个字母都有大小写两种可能,那么就有2的16次方种可能性,也就是65536种,应该算不算很多。我们用js生成一下字典,并储存到textarea中。
<!DOCTYPE html>
<html>
<head><title></title><textarea id="textarea"></textarea>
</head>
<body></body>
<script type="text/javascript">var cipher = 'trylowerandupper'
var dict = []function crossdict(l,u){var tmp1 = [].concat(dict);if(tmp1.length){for(var i,i=0;i<tmp1.length;i++){tmp1[i] += l;}}else{tmp1 = [l];}var tmp2 =[].concat(dict);if(tmp2.length){for(var i,i=0;i<tmp2.length;i++){tmp2[i] += u;}}else{tmp2 = [u];}dict = tmp1.concat(tmp2)
}function makedict(){for(var i,i=0;i<cipher.length;i++){crossdict(cipher[i].toLowerCase(),cipher[i].toUpperCase());}var value = ''for(var i=0;i<dict.length;i++){value += dict[i] + '\n';}document.getElementById("textarea").value = value;
}makedict();</script>
</html>
随便找个浏览器运行一下,然后把textarea中的内容复制到新建的txt中,保存成字典。
接着就是跑字典了,意料之外的迅速呀,一下子就得到了压缩包的密码。
打开压缩包得到flag:
这篇关于CTF 大小写字母转换 try lower and upper的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!