PICO CTF 2013 PHP 2: 85

来源:互联网 发布:兴业证券软件优理宝 编辑:程序博客网 时间:2024/06/12 19:41

这一题应该是入门级题目吧

链接:http://oj.xctf.org.cn/problems/253

--------------------------------------------------------------------------------

首先点击打开题目的超链接就显示了一句话,一般都先看一下源码吧


源码有个注释,说源代码在index.phps里,那就在地址栏输入者个文件看看咯,输入就提示下载了,下载了就更好


用编辑器打开就看到代码如下:

<?if(eregi("admin",$_GET[id])) {  echo("<p>not allowed!</p>");  exit();}$_GET[id] = urldecode($_GET[id]);if($_GET[id] == "admin"){  echo "<p>Access granted!</p>";  echo "<p>Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </p>";}?><br><br>Can you authenticate to this website?<!-- source: index.phps -->
首先第一个if里的eregi函数可以说匹配函数吧,只要含有admin无论大小写都返回true

所以我们肯定不能直接输入admin这个单词的,这就为下面作了铺垫了

下面将$_GET['id']进行了UrlDecode解码,然后再跟admin进行比较,如果相等就输出key,想想都有点击小激动啊(以下献丑了,其实每次成功都经历了不少,很多时候那些成功人士都没有告诉你们,一方面可能能让你们产生崇拜感,另一方面,人对于痛苦,不爽的事情都是天性地去忘掉的)

先去百度一下在线UrlEncode编码吧(想着一编码,绕过第一个if,再解码,进入第二个if,输出key,多好,但是理想总是很遥远)


看到这我的内心是崩溃的

*

*

*

*

*

*

*

其实中间还犯了一点小错误,毫无目的的去搜寻地址栏支持什么编码什么的(现在看来:跟源代码的原意违背了,源代码就很明确的都用了urldecode了,就肯定是要我们输入urlencode后的值啊)

接下里就直接搜了w3c的url编码表

ASCII ValueURL-encodeASCII ValueURL-encodeASCII ValueURL-encodeæ%000%30`%60 %011%31a%61 %022%32b%62 %033%33c%63 %044%34d%64 %055%35e%65 %066%36f%66 %077%37g%67backspace%088%38h%68tab%099%39i%69linefeed%0a:%3aj%6a %0b;%3bk%6b %0c<%3cl%6cc return%0d=%3dm%6d %0e>%3en%6e %0f?%3fo%6f %10@%40p%70 %11A%41q%71 %12B%42r%72 %13C%43s%73 %14D%44t%74 %15E%45u%75 %16F%46v%76 %17G%47w%77 %18H%48x%78 %19I%49y%79 %1aJ%4az%7a %1bK%4b{%7b %1cL%4c|%7c %1dM%4d}%7d %1eN%4e~%7e %1fO%4f %7fspace%20P%50€%80!%21Q%51 %81"%22R%52‚%82#%23S%53ƒ%83$%24T%54„%84%%25U%55…%85&%26V%56†%86'%27W%57‡%87(%28X%58ˆ%88)%29Y%59‰%89*%2aZ%5aŠ%8a+%2b[%5b‹%8b,%2c\%5cŒ%8c-%2d]%5d %8d.%2e^%5eŽ%8e/%2f_%5f %8f为了方便测试,我就在本地写了个文件测试,代码如下:


因为a的编码是%61嘛,我就在地址栏输入啊,结果一按回车.......,就变成a了


我再看一下编码表,发现.....


原来%号都用编码啊,那%2561不就是表示%61吗,马上测试一下


那这题应该结束了吧


哈哈得到key了,去拿那85分吧






0 0
原创粉丝点击