CTF【每日一题20160615】
2016-06-16 19:51
260 查看
继续 在http://hackgame.blackbap.org/上找乐子
第2道题是考查编码能力。
分析
1. 看页面中右侧有“提示在这里”似乎可以点击,但没有响应
2. 查看网页源代码(老套路),发现点击链接tip/nozend.php被注释了
3.将 tip/nozend.php粘贴在浏览器地址栏中,形成url: http://hackgame.blackbap.org/tip/nozend.php,并访问,出现如下代码页
第2道题是考查编码能力。
分析
1. 看页面中右侧有“提示在这里”似乎可以点击,但没有响应
2. 查看网页源代码(老套路),发现点击链接tip/nozend.php被注释了
<div class="lvl_tip" id="lvl2tip"> <span class="icon warning_icon"></span> <p>逆向解密</p><p>提示在 <b class="stress">这里<!-- tip/nozend.php --></b> </p> </div>
3.将 tip/nozend.php粘贴在浏览器地址栏中,形成url: http://hackgame.blackbap.org/tip/nozend.php,并访问,出现如下代码页
<?php highlight_file( __FILE__ ); function notrealmd5code($string,$operation='ENCODE') { if ($operation=='ENCODE'){ $OutTxt = ""; for ($x=0;$x<strlen($string);$x++) { $nr = ord($string[$x]); if ($nr < 128) { $nr += 128; } elseif ($nr > 127) { $nr -= 128; } $nr = 255 - $nr; $OutTxt .= sprintf("%02x", $nr); } return $OutTxt; } else { /* DECODE MISS * ord Return ASCII value of character */ return ''; } } echo notrealmd5code('1c10121a181e121a0f1016110b4d4d4d','DECODE'); ?>
显然该页面要输出:echo notrealmd5code('1c10121a181e121a0f1016110b4d4d4d','DECODE'); 但notrealmd5code函数中的decode部分没有实现,那么我们需要将字符串1c10121a181e121a0f1016110b4d4d4d进行decode。这里的encode是对密码进行了一种16进制字符转换,是种简单的加密(古典替换类的),那么decode自然是反推了。如果要编php又不想搭环境解释环境,可以在线测试。例如http://www.shucunwang.com/RunCode/php/提供了测试环境。如果想用其他语言编解码函数,也可以把'1c10121a181e121a0f1016110b4d4d4d'拷贝出来。例如下面的python解码:
''' 解密算法python版(丑陋但能用) ''' str = '1c10121a181e121a0f1016110b4d4d4d' ctable = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9, 'A':10,'B':11,'C':12,'D':13,'E':14,'F':15} out = '' i = 0 while i < len(str): a = str[i].upper() b = str[i+1].upper() c = ctable[a]*16 + ctable[b] i += 2 c = 255 - c if c >= 128: c -= 128 elif c <=127: c += 128 out += chr(c) print out #输出为:comegamepoint222
将comegamepoint222输入提交框,答案正确。
相关文章推荐
- ASP编码必备的8条原则
- XML指南——XML编码
- C#中字符串编码处理
- ExtJS中文乱码之GBK格式编码解决方案及代码
- 程序员趣味读物 谈谈Unicode编码
- 文本文件编码方式区别
- C语言安全编码之数值中的sizeof操作符
- C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)
- VC中BASE64编码和解码使用详解
- 计算机中的字符串编码、乱码、BOM等问题详解
- Base64编码解码原理及C#编程实例
- C#编码好习惯小结
- javascript编码的几个方法详细介绍
- UTF8编码开发中页面空白问题的解决方法
- php生成固定长度纯数字编码的方法
- 重新restore了mysql到另一台机器上后mysql 编码问题报错
- c# Base64编码和图片的互相转换代码
- java自动根据文件内容的编码来读取避免乱码
- PHP写入WRITE编码为UTF8的文件的实现代码
- 设置php页面编码的两种方法示例介绍