who are you(cookie)
访问题目地址,http://106.75.72.168:2222/
Sorry. You have no permissions.
没有访问权限?干脆扫一下端口,这是什么服务?
2222/tcp open http Apache httpd 2.4.7 ((Ubuntu))
扫一下目录
+ http://106.75.72.168:2222/index.php (CODE:200|SIZE:112)
+ http://106.75.72.168:2222/server-status (CODE:403|SIZE:295)
==> DIRECTORY: http://106.75.72.168:2222/uploads/
注意index.php,本来我以为php脚本里面写了过滤规则,只有特定的ip才能访问。但是客户端是看不到php文件的。。所以如果题目是这样那就没法做了。
在 Internet 中,Cookie 实际上是指小文本数据,是由 Web 服务器创建的,将信息存储在用户计算机上的文件。
role=Zjo1OiJ0aHJmZyI7; PHPSESSID=ao2t75c24bggl37ammfp7rjt50
role是身份的意思,base64解码一下,得到f:5:"thrfg";
找个在线rot13-凯撒解密,得到s:5:"guest";
guest换成admin,再凯撒编码,得到f:5:"nqzva";
再base64编码,得到Zjo1OiJucXp2YSI7

方法二,写个脚本。。


访问这个uploads的路径,显示是空白???
因为题目提示会接收filename、data参数,经过尝试,filename参数任意post提交,会提示文件路径,(每次都会改变)。我提交的data参数的值会显示在该文件路径网页上。
暗示我们可以写入一句话木马。但是有正则表达式过滤。
于是通过data[]=一句话木马,即可绕过。

总结:
1.cookies与session的区别。
session是一个会话,通过服务端和客户端的交互,来识别不同用户。通过服务端给不同用户标识不同session id来确定具体的用户。
cookies是存在用户浏览器上的小文本文件,session具体是通过cookies来实现的。
2.目标采用preg_match来进行正则匹配,可以考虑用数组来绕过。
因为正则只能匹配字符串类型。