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=0 union/**/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()可以直接读取文件