目录
unfinish
进入题目链接
有登录 就可能有注册界面
url栏register.php
或者直接上御剑扫一下
同样发现注册界面用AWVS扫描一下这两个页面
发现注册页面存在SQL注入进行注册抓包分析一下
注册成功就会发生302跳转。网页的注册码详解看这里
注册失败,返回200,返回原页面
PHP2
进入题目链接
这道题是/index.phps
源码泄露
第一步,要使得"admin"===$_GET[id]
不成立
第二步,经过$_GET[id] = urldecode($_GET[id])
,
使得$_GET[id] == "admin"
成立。
故有对admin
进行两次urlencode
Web_php_unserialize
进入题目链接
先看这段代码
传进来参数
进行base64解码
然后判断base64解码
里面
如果你是o
或者c
开头的 带一个:
然后带一串数字 且不分大小写
然后如果条件成立 输出stop hacking!
否则就进行反序列化
最后没有的话显示当前的页面
然后看一下这个类
flag是在这里 重点就是绕过这个wakeup
函数
分析完了
所以我们应该先进行序列化
然后进行base64加密
$a = new Demo("fl4g.php");
//定义一个类的对象
$b = serialize($a);
//进行序列化
echo $a;
//进行输出
print(base64_encode($b));
//进行base64加密
我们运行看一下
因为b
是以o
开头 且带一个:
带一个数字(4) 被匹配到了
所以 得绕过
4
和+4
其实是一样的 所以我们可以进行一个字符串的替换
$b = str_replace('O:4:','O:+4:',$b");
但是依然不行
因为我们是一个正常的反序列化
他就会执行wakeup
函数
如何绕过:当字符串中,表示属性个数的值大于其真实值,则跳过wakeup()
执行。
还是会被替换成index.php