我们将得到的thrfg验证后发现结果是guest。
win上是来宾账户,几乎没多大权限。所以我们尝试admin经过rot13加密,然后替换掉thrfg,再经过base64加密传给cookie。
我们得到一串源吗的提示,需要post上传两个文件。并且我们现在拥有了管理员的权限。
4、构造上传语句
试试直接上传php木马。这时提示nonono:
说明在写入数据的时候应该触发到了什么鬼。既然是上传文件,后台处理的时候肯定利用了函数写入。在上传时写入文需要有fopen fwrite fclose等等系列函数,还有一种file_put_contents()函数,它与依次调用上面三个函数功能一样,并且还这个可以允许数组。我们这里暂时不知道他们用的那个函数。所以我们应该将可上传的数据类型都尝试一下,所以我们再来尝试上传一个数组,可以将绕过语句改为
Filename=1.php&data[]=<?php phpinfo();?>
可以看到,页面返回给我们了文件上传后的路径,证明利用的file_put_contents()函数写入的文件。
5、获得flag
这时我们去访问得到的文件路径就可以看到flag
自我感觉此题难点有三:
(1)当我们打开题目时,不知道去干什么。这时应该尝试抓包查看头部信息,否则想破头(如此题)
(2)当我们得到base64解密后的字符串时,不知道代表着什么。这里需要对密码有着充足的理解。特别是不知道rot13的,容易想破头。
(3)在我们得知能够上传文件的时候,不知道该如何正确的去上传。这里需要明白上传写入的函数。可能大多都对上传数据写入的函数fopen(),fwrite(),fclose()函数比较熟,但是不知file_put_contents()函数,此题你就会想破头。
总结:积累很重要啊
原文地址:http://blog.51cto.com/12332766/2116829