ADWORLD 攻防世界/web/新手練習題目


網站  https://adworld.xctf.org.cn/task

 

 

 


01. view_source

    問題描述:X老師讓小寧同學查看一個網頁的源代碼,但小寧同學發現鼠標右鍵好像不管用了。

    解決方法: 使用view-source指令查看源碼 view-source:http://——————

                                 獲取源碼的一般方法:1 firefox訪問后右鍵進行查看

                                                                     2 view-source指令(如上)

 

 


02.Robots

    問題描述:X老師上課講了Robots協議,小寧同學卻上課打了瞌睡,趕緊來教教小寧Robots協議是什么吧。

robots協議也叫robots.txt(統一小寫)是一種存放於網站根目錄下的ASCII編碼的文本文件,它通常告訴網絡搜索引擎的漫游器(又稱網絡蜘蛛),此網站中的哪些內容是不應被搜索引擎的漫游器獲取的,哪些是可以被漫游器獲取的。因為一些系統中的URL是大小寫敏感的,所以robots.txt的文件名應統一為小寫。robots.txt應放置於網站的根目錄下。如果想單獨定義搜索引擎的漫游器訪問子目錄時的行為,那么可以將自定的設置合並到根目錄下的robots.txt,或者使用robots元數據(Metadata,又稱元數據)。

https://baike.baidu.com/item/Robots%E5%8D%8F%E8%AE%AE

   解決方案:在該地址下直接訪問robots.txt,獲得如下界面:

 

                     繼續訪問   f1ag_1s_h3re.php   即可得到flag

 


 

03.backup

題目描述:X老師忘記刪除備份文件,他派小寧同學去把備份文件找出來,一起來幫小寧同學吧!

解決方法:訪問地址,根據提示

                  

 

 

                  index.php的備份文件名是index.php.bak,直接訪問index.php.bak,如下圖

                 

 

 

                  用txt打開即獲得flag


 

04.cookie

題目描述:X老師告訴小寧他在cookie里放了些東西,小寧疑惑地想:‘這是夾心餅干的意思嗎?’

Cookie指某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據

Cookie 是在 HTTP 協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cookie 是由 Web 服務器保存在用戶瀏覽器(客戶端)上的小文本文件,它可以包含有關用戶的信息。無論何時用戶鏈接到服務器,Web 站點都可以訪問 Cookie 信息。

解決方法:方法一:使用burpsuite查看requests和response

       

 

 

 

 

 

 

 

 

 

 

 

                   方法二:F12打開火狐的hackbar

                                 點擊 網絡,在消息頭中可以看見    Set-Cookie look-here=cookie.php

 

 

 

                                 繼續訪問cookie.php

                                 在消息頭中可看見flag

        

 

 

 

 

 


05.get post

問題描述:X老師告訴小寧同學HTTP通常使用兩種請求方法,你知道是哪兩種嗎?

了解http請求方法,此處考察get和post兩個最常用的請求方法。

 

HTTP協議中共定義了八種方法或者叫“動作”來表明對Request-URI指定的資源的不同操作方式,具體介紹如下:

 

 

GET:向特定的資源發出請求。

 

 

POST:向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的創建和/或已有資源的修改。

 

 

OPTIONS:返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發送'*'的請求來測試服務器的功能性。

 

 

HEAD:向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。

 

 

PUT:向指定資源位置上傳其最新內容。

 

 

DELETE:請求服務器刪除Request-URI所標識的資源。

 

 

TRACE:回顯服務器收到的請求,主要用於測試或診斷。

 

 

CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。

https://www.cnblogs.com/qing123tian/p/10785372.html

https://www.w3school.com.cn/tags/html_ref_httpmethods.asp

 

解決方法:1、請用GET方式提交一個名為a,值為1的變量

                        在url后輸入 ?a=1

                  2、請再以POST方式隨便提交一個名為b,值為2的變量

                      F12進入火狐的hackbar,如下圖

                       依次點擊 Load URL  >  Post Data   > 輸入b=2

                       點擊excute得到flag

                       

 

 

 


 

06.simple php

  問題描述:小寧聽說php是最好的語言,於是她簡單學習之后寫了幾行php代碼。

  解決方法:進入題目看見源碼如下

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

     大致題意就是給a和b賦值可以各出現半段flag

      在PHP中遇到數字與字符串進行松散比較()時,會將字符串中前幾位是數字且數字后面不是”.",“e"或"E"的子串轉化為數字,與數字進行比較,如果相同則返回為true,不同返回為false,后面的所有字符串直接截斷扔掉。若輸入的字符串是字母在前,如abc123,因為字符串首沒有數字,只能識別轉換成0。

     輸入?a=a&b=1235c得到完整flag

 

 


 

07.webshell

問題描述:小寧百度了php一句話,覺着很有意思,並且把它放在index.php里。

webshell是web入侵的腳本攻擊工具。簡單的說來,webshell就是一個asp或php木馬后門,黑客在入侵了一個網站后,常常在將這些asp或php木馬后門文件放置在網站服務器web目錄中,
與正常的網頁文件混在一起。然后黑客就可以用web的方式,通過asp或php木馬后門控制網站服務器,包括上傳下載文件、查看數據庫、執行任意程序命令等。

解決方法:用蟻劍鏈接地址
                  

 

                     在數據中發現flag.txt,打開獲得flag

                

 

                


08.weak_auth

問題描述:小寧寫了一個登陸驗證頁面,隨手就設了一個密碼。

解決方法:       隨意輸入用戶名和密碼,出現以下提示:

                         

 

                        繼續使用admin為用戶名,任意為密碼

                                  提示為密碼錯誤

                                  同時源碼中可以看見提示

 

 

                         使用brupsuite進行抓包

 

 

 

 

 

 

 

                          發現123456是正確密碼,輸入得到flag

 


09.disabled_button

題目描述:X老師今天上課講了前端知識,然后給了大家一個不能按的按鈕,小寧驚奇地發現這個按鈕按不下去,到底怎么才能按下去呢?

解決方法:將源碼中的disabled修改為abled

 

 

 

 


10.simple_js

題目描述:小寧發現了一個網頁,但卻一直輸不對密碼。(Flag格式為 Cyberpeace{xxxxxxxxx} )

行為分析:無論輸入什么都是錯的,無論怎么輸入都返回同一個錯誤提示。

解決方法:1 查看源代碼,可以發現js代碼

               

<html>
<head>
    <title>JS</title>
    <script type="text/javascript">
    function dechiffre(pass_enc){
        var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
        var tab  = pass_enc.split(',');
                var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
                        k = j + (l) + (n=0);
                        n = tab2.length;
                        for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
                                if(i == 5)break;}
                        for(i = (o=0); i < (k = j = n); i++ ){
                        o = tab[i-l];
                                if(i > 5 && i < k-1)
                                        p += String.fromCharCode((o = tab2[i]));
                        }
        p += String.fromCharCode(tab2[17]);
        pass = p;return pass;
    }
    String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

    h = window.prompt('Enter password');
    alert( dechiffre(h) );

</script>
</head>

</html>

   分析發現輸出的一直是70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65的ascii輸出

  

 

 

 

                           真正的flag藏在下方那一串16進制數中\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30

                          用python處理得到數組

 

 

 

                               再轉換成ascii碼

                               得到flag   cyberpeace{786OsErtk12}

                        參考 https://www.52pojie.cn/thread-1256623-1-1.html


 

            

 


免責聲明!

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



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