PICO CTF 2013 PHP 2: 85

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

链接: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%67
backspace%088%38h%68
tab%099%39i%69
linefeed%0a:%3aj%6a
 %0b;%3bk%6b
 %0c<%3cl%6c
c 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 %7f
space%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分吧






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值