join一个用户后,点进去发现是这样的

查看这个页面的源代码,发现一个base64编码后的字串

decode之后就是我们join新用户时填入的blog网址

那我们是不是可以通过填入存储flag的地址,从而回显出来呢?当然,先按照常规sqli步骤走

扫一下目录,但是这里比较奇怪,没有内容的会跳回默认页面

假装我们已经扫出来user.php.bak和flag.php

user.php.bak的内容

回到view.php,查出来有四列,然后还发现过滤了union select中间的空格,用/**/替代空格绕过

这里2回显在username的位置上,同时也有报错显示绝对地址

这里爆出来的也都是我们join的序列化数据,显然flag不在这里,

回到刚刚提到的绝对路径这一步

data存在4这里,并且上面一张图可以看出data是序列化的字符串,我们把blog改成file:///var/www/htmlflag.php

no=0union/**/select 1,2,3,’O:8:”UserInfo”:3:{s:4:”name”;s:3:”123″;s:3:”age”;i:123;s:4:”blog”;s:29:”file:///var/www/html/flag.php”;}’

成功读取了flag.php的源码

另外还有一个方法load_file()可以直接读取文件