主頁 > 後端開發 > 攻防世界 web 新手題小結

攻防世界 web 新手題小結

2020-10-21 23:36:42 後端開發

01view_source

方法:在下用的firefox,滑鼠右鍵可查看頁面源代碼,試了試不行,那么F12,即可得到,
識訓:滑鼠右鍵不能用,與前端函式有關,在該頁面中我們可以發現有這兩個函式,

1. document.oncontextmenu=new Function("return false") //是右鍵選單禁用;
2. document.onselectstart=new Function("return false") //是禁止選中頁面上的內容;
3. document.onselectstart=new Function("return false")//是禁止復制在頁面上選中的內容;(補充)

02get_post

HTTP通常的兩種請求方法是get和post.

方法一:首先進入容器會看到

那么就在url后加上?a=1,然后得到

這時有三種方法:1.用firefox插件Max HacKBar,,得到flag;

方法二:用burp抓包,send to repeater,加上b=2 send,得到flag;

方法三:不用插件,,某位大佬的,在查看器中進行如圖修改,即可得到flag,

03robots

方法:在url后加上robots.txt,會得到,然后訪問flag_1s_h3re.php,即可得到flag,

識訓:當一個搜索機器人(有的叫搜索蜘蛛)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該檔案中的內容來確定訪問的范圍;如果該檔案不存在,那么搜索機器人就沿著鏈接抓取,并且,robots.txt必須放在一個站點的根目錄下,而且檔案名必須是小寫,robots.txt就是告知搜索引擎哪些是允許訪問的,哪些是不想被搜索引擎收錄的,如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt檔案,但是,robots.txt不是防火墻,不能阻止訪問,

04backup

方法:在url后加上Index.php.bak,訪問,在f12中,即可得到flag.

識訓:常見的備份檔案后綴名有:.git .svn .swp .bak .bash_history .~

php的備份有兩種:*.php~和*.php.bak, 這道題也可以用py腳本解決,掃目錄,即可得到地址,也可以用御劍掃描進行解決,

05cookie

分析:首先會看到這個,然后f12查看,cookie,,然后就在url后加上cookie.php,訪問,看到,提示我們在回應頭里,

方法一:burp抓包,并send to repeater,而后send,在回應頭里即可得到flag,

方法二:firefox,訪問http://220.249.52.133:54804/cookie.php,f12,在網路一欄中,可看到訪問cookie.php的資料包,

識訓:Cookie是當主機訪問Web服務器時,由 Web 服務器創建的,將資訊存盤在用戶計算機上的檔案,一般網路用戶習慣用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 Session 跟蹤而存盤在用戶本地終端上的資料,而這些資料通常會經過加密處理,

06disabled_button

方法一:打開后,發現,f12,在查看器一欄中,將disabled改為abled或直接將disabled=""洗掉,然后按鈕就可以點了,點擊即可得到flag.

方法二:審計form表單代碼,post傳值auth=flag,也可以得到flag.

(但是我在用Burp實作的時候卻無法成功,如下圖),如果哪位大佬懂的話,希望在評論區指點小弟下,

識訓:html的相關標簽及相應的屬性

07weak_auth

題目簡介:打開后,如圖

需要輸入賬號和密碼,然后隨便輸入,會出現彈窗(please login as admin)在f12發現

方法:burp爆破,配置好之后,打開,抓包,send to Intruder,

然后設定爆破點為password:將admin兩邊的$去掉,將password的值兩邊加上$.

加載字典,load加載字典,然后開始爆破

發現,密碼為123456時length不一樣,于是在回應包里得到flag,

識訓:burp的爆破功能,以及用Python,c++創建字典的方法.


08command_execution

題目:小寧寫了個ping功能,但沒有寫waf,X老師告訴她這是非常危險的,你知道為什么嗎,

waf,web應用防火墻,Web應用防火墻是通過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品,所以本題環境沒有waf,

方法一:1.在文本框內輸入127.0.0.1 | find / -name "flag.txt" ,查找flag所在位置

2.在文本框內輸入 127.0.0.1 | cat /home/flag.txt 可得到flag

方法二:1.在文本框中輸入127.0.0.1 && ls 查看當前目錄下的檔案

2.輸入127.0.0.1 && ls../ 查看上一級目錄

3.輸入127.0.0.1 && ls../../ 查看上一級目錄

4.輸入127.0.0.1 && ls../../../ 查看上一級目錄,發現有個home的檔案,不妨打開看看

5.輸入127.0.0.1 && ls ../../../home 查看該檔案,發現flag.txt

6.輸入127.0.0.1 && cat ../../../home/flag.txt 打開該檔案,

方法三:requests庫,這是xctf平臺某位大佬的解題方法,同時requests庫的相關使用參見這位大佬的requests庫基本使用 和這位大佬的Python-第三方庫requests詳解 ,個人感覺收益頗豐,

識訓:

| 的作用為將前一個命令的結果傳遞給后一個命令作為輸入

&&的作用是前一條命令執行成功時,才執行后一條命令

還有相關指令要學習,find ,cat ,ls 等指令,

09simple_php

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

題目:打開后出現如下代碼,

進行代碼審計:1.get傳參給$a和$b,如果$a==0 且 $a ,則回傳$flag1;

2.is_numeric()函式,如果$b是數字或者數字字串,則回傳ture,exit()執行;否則,并且$b>1234

,則回傳$flag2;

3.這里要注意一點,php語言是弱型別比較,php中有兩種比較符號

=== 會同時比較字串的值和型別;

== 會先將字串換成相同型別,再作比較,屬于弱型別比較;

所以如果$a=string(string是任意字串),則‘string’==0為真;

$b=12ss,則‘12ss’==12為真,

方法一:回傳flag1. url后加上index.php?a=string (string為任意字串),得到flag1的一半,還有半截未顯示出來

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

Cyberpeace{647E37C7627CC3E401

在url后加上index.php?a=0&b=1235a,得到flag1的另一半(別問我咋知道的,瞎試試出來的,現在還沒搞懂,懂的大佬可在評論區指點一下)

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

9EC69324F66C7C} 

方法二:回傳flag2. url后加上index.php?a=string&b=1235a (string為任意字串),得到flag2.

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

Cyberpeace{647E37C7627CC3E4019EC69324F66C7C} 


10xff_referer

題目:描述及打開后看到的

方法一:burp抓包,send to repeater,將X-Forwarded-For添加進去(注意位置),得到如下圖

由圖知,https要設定,于是再將Referer:https://www.google.com 插入進去,得到flag.

識訓:

X-Forwarded-For:簡稱XFF頭,它代表客戶端,也就是HTTP的請求端真實的IP,只有在通過了HTTP 代理或者負載均衡服務器時才會添加該項

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的.


11webshell

這個題的相關資料:

新手區webshell


12simple_js

題目:打開后,就讓我輸密碼,隨便輸入,出現彈窗,查看源代碼,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) );

開始代碼審計:簡化后,就是有個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",將其轉為10進制,然后根據ASCII碼表對應的字符進行轉化,得到flag,

方法:python

識訓:

1.fromCharCode()函式

var n = String.fromCharCode(65);
輸出結果: A

2.16進制字串轉10進制,python直接輸出

3.數字轉字串,用遍歷,chr()函式:將陣列轉為相應的ASCII碼字符,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/184718.html

標籤:python

上一篇:如果網站做完幾年后找不到網路公司的人了怎么辦

下一篇:云服務器建站選擇

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more