[网鼎杯 2018]Fakebook1

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

图片[1] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[2] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[3] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

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

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

图片[4] - [网鼎杯 2018]Fakebook1 - MaxSSL

user.php.bak的内容图片[5] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[6] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[7] - [网鼎杯 2018]Fakebook1 - MaxSSL

图片[8] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[9] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

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”;}’

图片[10] - [网鼎杯 2018]Fakebook1 - MaxSSL

图片[11] - [网鼎杯 2018]Fakebook1 - MaxSSL

成功读取了flag.php的源码

图片[12] - [网鼎杯 2018]Fakebook1 - MaxSSL

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

图片[13] - [网鼎杯 2018]Fakebook1 - MaxSSL

图片[14] - [网鼎杯 2018]Fakebook1 - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享