著名黑客大賽資格賽

2022-02-10 09:18:04 字數 1613 閱讀 4232

著名黑客大賽defcon ctf(capture the flag,奪旗賽)資格賽日前落下帷幕,451支隊伍中最先完成比賽的前7支隊伍獲得了決賽資格,他們分別是:routards、 pandas with gambas、 guard@mylan0、 shellphish、 taekwon-v、 wowhacker 和 plus,去年的冠軍1@stplace也將應邀參加決賽。

ctf資格賽的參賽門檻很低,只需要網上報名註冊即可,但是大會組織者會手工篩選出最後確定的參賽隊伍名單,要想在資格賽中勝出,不僅要有紮實的基本功,還必須要有一定的創造性思維以及在網際網路上搜尋資料的技巧。資格賽分五個專案:trivia、forensics、potent pwnables、real world和binary leetness。

trivia正如其名字,裡面的問題都較為輕鬆,而且不見得就是與技術相關,可能會有那些與黑客文化相關的問題出現;forensics基本上是熱身,一般是在給定的檔案中找出作為密匙(key)的字串;potent pwnables和real world則是與現實網路攻擊最為接近的專案,最終目的是獲得伺服器管理許可權並從伺服器上獲取密匙字串;binary leetness可以看作是前面三者的結合。

規則如下:每個專案中都有5道題,分值為100分到500分不等,除了最開始的乙個問題是開放的之外(lead question),其他所有問題均是關閉的,最先做出open question的隊伍將有資格選擇任意一道問題作為新的lead question,其他隊伍可以選擇是繼續原來的題目或者跳到這個新的問題上去,直到所有問題被開啟或者規定時間到,比賽結束。

對於每道題,最先完成的隊伍可獲得該題對應的全部分數,第二名獲得95%的分數,其餘的完成隊伍則獲得90%的分數,提交問題答案的次數沒有限制,但是由於是線上賽,因此導致記分牌宕機的頻繁提交或者試圖黑掉伺服器的方法是嚴格禁止的(事實上,比賽伺服器是由乙個名叫kenshoto的技術精英小組負責維護的,這些嘗試基本上是浪費時間)。以下是比賽記分牌,圖中綠色代表已經完成的題目,藍色代表目前已經開放的題目,紫色代表你目前正在做的題目,黃色代表其他隊伍開啟的題目(lead question),灰色代表關閉的題目:

今年資格賽的所有題目以及部分解法可以在這裡找到,感興趣的朋友可以嘗試一下(最好是freebsd環境),如果覺得不過癮,這裡和這裡是2023年和2023年的題目和解法。(個人認為,forensics是比較好玩的)

defcon是全球兩大公開黑客集會之一(另乙個是blackhat),匯集了民間諸多技術高手,期間會舉行眾多的活動,其中最有名的就是ctf奪旗賽,它的基本規則是隊伍在有安全缺陷的計算機上執行程式,完成隊伍之間的相互攻擊和自身防守,並且隊伍人數沒有限制。下面是ctf的現場布置:

ctf基本規則:每個隊伍分配一台伺服器,伺服器上執行著很多網路服務,這些服務多半有著安全缺陷。每個服務中包含乙個權杖(token,每個隊伍的token不一樣),並分為public、private和overwrite三種型別,參賽隊伍要做的就是要麼獲取服務中的token,要麼把自己的token寫入其他隊伍的服務中去,因此得分方式也就有三種:1、breakthrough,最先取得某一服務的控制權;2、steal,獲得某一服務中的private token,並將其提交到積分伺服器上;3、overwrite,用自己的隊伍token去覆蓋其他隊伍的專有token。整個比賽將持續3天左右。

defcon ctf決賽將於今年8月份在拉斯維加斯舉行。

2017 百度之星 程式設計大賽 資格賽

度度熊為了拯救可愛的公主,於是與 大魔王戰鬥起來。大魔王的麾下有n個怪獸,每個怪獸有a i 的生命值,以及b i 的防禦力。度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k i 的晶石,造成p i 點傷害。當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p i...

2017 百度之星 程式設計大賽 資格賽

思路 比賽的時候也一直以為是計算幾何問題,所以就沒想,賽後看了看大佬們的部落格發現思路還是挺簡單的,就是對度度熊夥伴進行建圖,有邊的條件是所有所有村莊位於這天邊的一側,然後對這個圖跑乙個最小環 之前一直不理解叉積,做了幾道題之後好多了 include include include include ...

2023年百度之星程式設計大賽 資格賽

主要是卡了一下 接下來2題還在做 都有思路 考慮全然即可了 include include using namespace std int main if k 1 m v m v k m int sum 0 while m n m 0 if m 0 m n sum 1 printf d n sum ...