噗,紀念一下我(在隊長指導下)做出的第一道ctf簽到題(逃)——下載下載


 

 其他大佬的wp:http://www.safe-w22.com/index.php/archives/741     安卓之類的(zip)

https://url.cn/5PyIddy   WEB題

2019掘安杯,某國家題:下載下載

我一開始= = 太naive,下載了這個藍色鏈接的文件,打開是這樣的。(大佬直接burp拿到flag文件)

雖然我完全是萌新,不過基礎操作還是會一點的。F12查看網頁源代碼。發現注釋了幾行。

右鍵藍色鏈接 復制鏈接,粘貼到地址欄,把txt改成php,下載php文件。

 1 <?php
 2 header('Content-Type: text/html; charset=utf-8'); //網頁編碼
 3 function encrypt($data, $key) {
 4     $key = md5 ( $key );
 5     $x = 0;
 6     $len = strlen ( $data );
 7     $l = strlen ( $key );
 8     for($i = 0; $i < $len; $i ++) {
 9         if ($x == $l) {
10             $x = 0;
11         }
12         $char .= $key {$x};
13         $x ++;
14     }
15     for($i = 0; $i < $len; $i ++) {
16         $str .= chr ( ord ( $data {$i} ) + (ord ( $char {$i} )) % 256 );
17     }
18     return base64_encode ( $str );
19 }
20 
21 function decrypt($data, $key) {
22     $key = md5 ( $key );
23     $x = 0;
24     $data = base64_decode ( $data );
25     $len = strlen ( $data );
26     $l = strlen ( $key );
27     for($i = 0; $i < $len; $i ++) {
28         if ($x == $l) {
29             $x = 0;
30         }
31         $char .= substr ( $key, $x, 1 );
32         $x ++;
33     }
34     for($i = 0; $i < $len; $i ++) {
35         if (ord ( substr ( $data, $i, 1 ) ) < ord ( substr ( $char, $i, 1 ) )) {
36             $str .= chr ( (ord ( substr ( $data, $i, 1 ) ) + 256) - ord ( substr ( $char, $i, 1 ) ) );
37         } else {
38             $str .= chr ( ord ( substr ( $data, $i, 1 ) ) - ord ( substr ( $char, $i, 1 ) ) );
39         }
40     }
41     return $str;
42 }
43 
44 $key="MyCTF";
45 $flag="o6lziae0xtaqoqCtmWqcaZuZfrd5pbI=";//encrypt($flag,$key)
46 ?>

 

我沒學過php,直接看別的無關的php代碼,大概知道怎么輸出結果,修改了一下。

 1 <?php
 2 header('Content-Type: text/html; charset=utf-8'); //網頁編碼
 3 function encrypt($data, $key) {
 4     $key = md5 ( $key );//MyCTF:
 5     $x = 0;
 6     $len = strlen ( $data );
 7     $l = strlen ( $key );
 8     for($i = 0; $i < $len; $i ++) {
 9         if ($x == $l) {
10             $x = 0;
11         }
12         $char .= $key {$x};
13         $x ++;
14     }
15     for($i = 0; $i < $len; $i ++) {
16         $str .= chr ( ord ( $data {$i} ) + (ord ( $char {$i} )) % 256 );
17     }
18     return base64_encode ( $str );
19 }
20 
21 function decrypt($data, $key) {
22     $key = md5 ( $key );
23     $x = 0;
24     $data = base64_decode ( $data );
25     $len = strlen ( $data );
26     $l = strlen ( $key );
27     for($i = 0; $i < $len; $i ++) {
28         if ($x == $l) {
29             $x = 0;
30         }
31         $char .= substr ( $key, $x, 1 );
32         $x ++;
33     }
34     for($i = 0; $i < $len; $i ++) {
35         if (ord ( substr ( $data, $i, 1 ) ) < ord ( substr ( $char, $i, 1 ) )) {
36             $str .= chr ( (ord ( substr ( $data, $i, 1 ) ) + 256) - ord ( substr ( $char, $i, 1 ) ) );
37         } else {
38             $str .= chr ( ord ( substr ( $data, $i, 1 ) ) - ord ( substr ( $char, $i, 1 ) ) );
39         }
40     }
41     return $str;
42 }
43 
44 $key="MyCTF";
45 $flag="o6lziae0xtaqoqCtmWqcaZuZfrd5pbI=";//
46 $ans=encrypt($flag,$key);
47 print $ans;
48 ?>

 

 直接用phpstudy myHomePage運行,莫得結果。

於是在隊長的指點下(其實是直接告訴我)。

把末尾的 encrypt改成decrypt...

 得到flag.  myCTF{cssohw456954GUEB}

 


 

 

接下來是看了其他人的wp,所以想要復現一下QAQ。

http://120.79.1.69:8887/web3/ 

猜密碼

這個我看了源碼..但是我真的沒學過php啊。。。看了一會兒,能夠感覺它的簡單,但是並沒有做出來QAQ,還傻乎乎地輸了password 之類的,密碼錯誤

 

然后直接點擊,猜密碼(什么也不用輸入)

Flag:jactf{09fb10c51810d92e1b7405d143332886}


 有一題。。回復公眾號

 


免責聲明!

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



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