Syclover 第十次極客大挑戰web題題解


這次有空的時候報名參加了一下三葉草的招新比賽,比賽時間是一個月,題目都挺基礎挺好玩的,在這里記一下自己的題解同時把自己沒有做的題目也跟着writeup做一遍

 

第一題:cl4y:打比賽前先擼一只貓!: 貓貓陪我打ctf!

 

 到了頁面之后審查元素。發現源代碼里面有提示:

 

 這里我們需要使用get請求讓cat這個變量等於dog,就可以得到flag

 

 

第二題:cl4y:你看見過我的菜刀么

 

 進入頁面之后很明顯是一句話木馬,白送的flag

菜刀使用Syc密碼連接

 

 在根目錄下有flag這個文件夾,里面的flag.txt就是flag

 

 

第三題:Lamber:BurpSuiiiiiit!!!: 拿起你的burp,開始戰斗吧

 

提示了是使用burpsuite,下載了分享的文件之后打開是一個jar包,想起來burpsuite有增加擴展的功能,導入這個Extender包

也就是在burpsuite的extender的extensions選項里面選擇Add

 

 添加了之后有一個output

 

 並且提示我們去看error page

里面就有:

OK, I'll give you the flag now. Here is your flag Syc{BurpExtender_Are_guns_F0r_Hack3rs}

當然,下面還有一句base64編碼的話,解碼后如下:The first person to send a screenshot of the egg to Lamber, who will invite him to drink milk tea. Ps:Color Egg in Decompiled Source Code

第一個發現彩蛋的人Lamber會請他喝奶茶

這個彩蛋是在jar的反編譯源碼里面的

我之前做這個題的時候找到了彩蛋,這里就不贅述了

 

第四題:Ayrain:性感瀟文清,在線算卦:動作快點才能算到好卦。

 

 隨便輸入admin/admin

頁面上返回:

Ding!你的算卦結果就在這兒啦!快來看!uploads/8d425a9a73db63b6b5def8acbf5da5d8c842d859/d033e22ae348aeb5660fc2140aec35850c4da997

可以看出來返回了算卦的結果,接着我們審查元素,源代碼里面有php源代碼泄露:

 

 提示了我們使用條件競爭。可以看出來我們用get方法傳遞給 u 和  p,$content里面儲存着我們想要的flag,然后將$content 儲存在$savepath這個路徑里面,頁面返回這個儲存的路徑,在usleep(100000)之后,$content里面的內容被改成"you are too slow" 儲存的數據被改變,再次去訪問就不會得到正確的結果了

所以我們要做的就是,在unsleep(100000)這段時間里面,我們需要訪問到返回這個路徑的文件內容

因為它每次都是使用sha1來對傳遞的u來儲存,所以每次的儲存路徑實際都是相同的,我們使用burpsuite開兩個線程來訪問,一個不斷傳遞相同的u,一個不斷訪問u所對應的路徑

如圖:

 

 

 

 獲取flag

 另外一個思路是編寫python的腳本進行多線程爆破

 

第五題:cl4y:Easysql: 最近我做了一個小網站,我把flag放在里面了,不過我沒有把登陸密碼告訴任何人,所以你們是拿不到flag的!

 題目提示我們要登錄網站,加上這里是sql注入,我們嘗試使用萬能密碼

 

 登錄成功,查看到flag

 

 有空在更

<? php
highlight_file ( __FILE__ );
error_reporting ( E_ALL );
ini_set ( "max_execution_time" , "60" );
empty ( $_GET [ "url" ]) && die ();
$password = "If I knew where I would die, I would never go there." ;
$arr = explode ( ' ' , $password ); function startsWith ( $haystack , $needle )
{
$length = strlen ( $needle );
return ( substr ( $haystack , 0 , $length ) === $needle );
}
$url = $_GET [ "url" ];
if ( ! startsWith ( $url , "http://" ))
{
die ( "Not allow !" );
}
for ( $i = 0 ; $i < count ( $arr ); $i ++ )
{
$ch = curl_init ();
curl_setopt ( $ch , CURLOPT_URL , $url );
curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER , FALSE );
curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST , FALSE );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ( $ch , CURLOPT_TIMEOUT , 3 );
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , false );
$output = curl_exec ( $ch );
curl_close ( $ch );
if ( $output === $arr [ $i ])
{
if ( $i == sizeof ( $arr ))
{
echo "Congratulations. Flag is
SYC{********************************}" ;
}
else
{
continue ;
}
}
else
{
die ( "password is wrong" );
}
}
?>


免責聲明!

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



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