XCTF攻防世界Web之WriteUp

XCTF攻防世界Web之WriteUpphp

0x00 準備html

內容前端

在xctf官網註冊帳號,便可食用。python

【目錄】linux

目錄git

0x01 view-source2github

0x02 get post3web

0x03 robots4shell

0x04 backup6windows

0x05 Cookie7

0x06 disabled button8

0x07 simple js9

0x08 XFF Referer10

0x09 weak auth(弱口令密碼)12

0x10 web shell15

0x11 command_execution16

0x12 simple php18

0xff 附錄19

 


0x01 view-source

【題目描述】

X老師讓小寧同窗查看一個網頁的源代碼,但小寧同窗發現鼠標右鍵好像無論用了。

【目標】

學會查看源代碼

【工具】

firefox瀏覽器

【分析過程】

能夠經過view-source:的方法來訪問源碼:html view-source:http://10.10.10.175:32796

在url中提交後即可訪問頁面源碼,在源碼中可找到flag。

 

【參考網址】

http://www.javashuo.com/article/p-ppngjuft-nd.html

【溫故知新】

view-source:命令 等價於 右鍵網頁,查看網頁源代碼

這是一個大多數人都會的操做,只是不知道這個操做其實就是一個簡單的命令而已。

固然這個題說的是右鍵無論用了,那麼就只能輸入這個命令來查看源代碼了,道理都是一個樣。


0x02 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協議中預留給可以將鏈接改成管道方式的代理服務器。

【工具】

火狐瀏覽器插件hackbar(license隨便亂寫,而後save,重啓便可食用)

【分析過程】

在url後添加/?a=1便可發送get請求。

F12,使用hackbar插件,複製get的url,選擇postdata,填入b=2,選擇execute。便可發送POST請求。

 

【有待提升】

這裏只瞭解了GET和POST請求,但對於其餘的6個請求知之甚少,仍須要大量的相關題型纔能有一個全面的瞭解。因此,有待提升!


0x03 robots

【題目描述】

X老師上課講了Robots協議,小寧同窗卻上課打了瞌睡,趕忙來教教小寧Robots協議是什麼吧。

【目標】

掌握robots協議的知識

    robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,若是存在,搜索機器人就會按照該文件中的內容來肯定訪問的範圍;若是該文件不存在,全部的搜索蜘蛛將可以訪問網站上全部沒有被口令保護的頁面。

【環境】

【工具】

掃目錄腳本dirsearch(項目地址:https://github.com/maurosoria/dirsearch)

【分析過程】

提示robots,能夠直接想到robots.txt,掃目錄也能夠掃到:

python python3 dirsearch.py -u http://10.10.10.175:32793/ -e *

這裏咱們將下載好的dirsearch腳本解壓後,打開dirsearch.py文件,運行一下,提示須要輸入命令:-u http://10.10.10.175:32793/ -e *(跑程序相對較慢,稍做等待)

在.\reports\111.198.29.45\目錄下找到剛輸出的文件:

 

打開便可看到掃出的目錄和文件。便可看到存在robots.txt文件。

 

HTML訪問robots.txt發現f1ag_1s_h3re.php

 

訪問robots.txt發現f1ag_1s_h3re.php

 

【有待提升】

掃目錄的腳本的原理一臉懵逼!

【知識擴展】

利用robots.txt快速抓取網站的小竅門


0x04 backup

【題目描述】

X老師忘記刪除備份文件,他派小寧同窗去把備份文件找出來,一塊兒來幫小寧同窗吧!

【目標】

    掌握有關備份文件的知識

    常見的備份文件後綴名有: .git .svn .swp  .~ .bak .bash_history(共6種)

【工具】

火狐瀏覽器插件hack bar

掃目錄腳本dirsearch(項目地址:https://github.com/maurosoria/dirsearch)

【分析過程】

能夠手動猜想,也可使用掃目錄腳本或軟件,掃一下,這裏使用的是github上的腳本dirsearch,命令行下: py python3 dirsearch.py -u http://111.198.29.45:47591 -e *

 

看到存在備份文件index.php.bak訪問 http://10.10.10.175:32770/index.php.bak

下載到本地打開,便可看到flag

 

 


0x05 Cookie

【題目描述】

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

【目標】

掌握有關cookie的知識

Cookie 能夠翻譯爲「小甜品,小餅乾」,Cookie 在網絡系統中幾乎無處不在,當咱們瀏覽之前訪問過的網站時,網頁中可能會出現 :你好 XXX,這會讓咱們感受很親切,就好像吃了一個小甜品同樣。這實際上是經過訪問主機中的一個文件來實現的,這個文件就是 Cookie。在 Internet 中,Cookie 其實是指小量信息,是由Web服務器建立的,將信息存儲在用戶計算機上的文件。通常網絡用戶習慣用其複數形式 Cookies,指某些網站爲了辨別用戶身份、進行Session 跟蹤而存儲在用戶本地終端上的數據,而這些數據一般會通過加密處理。

【工具】

瀏覽器開發者工具

【分析過程】

F12-存儲-Cookie-look here-look here:cookie.php

 

發送cookie.php請求,提示看http響應。在響應頭裏發現flag。

【有待提升】

Cookie怎麼存儲,存儲的原理,傳輸的原理還沒有可知!


0x06 disabled button

【題目描述】

X老師今天上課講了前端知識,而後給了你們一個不能按的按鈕,小寧驚奇地發現這個按鈕按不下去,到底怎麼才能按下去呢?

【目標】

初步瞭解前端知識

對於HTML的基本語法知識須要必定的瞭解,對於每一個標籤,有一些不可用屬性,如:disabled,藉助開發者工具能夠刪除這些屬性,從而讓其變得可用!

【工具】

開發者工具

【分析過程】

F12,將標籤input中的disabled(不可用)屬性刪除,x掉調試框,點擊按鈕,便可獲得flag。

 

也能夠手動POST相關數據,如下爲部分源代碼:

<form action="" method="post" >

<input disabled class="btn btn-default" style="height:50px;width:200px;" type="submit" value="flag" name="auth" />

</form>

因而構造POST請求:auth=flag

 


0x07 simple js

【題目描述】

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

【目標】

掌握有關js的知識

【工具】

開發者工具

【分析過程】

F12查看網頁源代碼,找到index文件,仔細閱讀js代碼。(或者view-source:命令)

 

會發現dechiffre返回值與參數pass_enc沒有任何關聯,返回值是固定的,即不論輸入什麼都是同樣得輸出。因此猜想密碼在string這一行裏。

利用python代碼來求出flag:先將16進制數輸出,再將數字(ascii碼)轉換爲對應的字符。

 


0x08 XFF Referer

【題目描述】

X老師告訴小寧其實xff和referer是能夠僞造的。

【目標】

掌握有關X-Forwarded-For和Referer的知識

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

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,通常會帶上Referer,告訴服務器我是從哪一個頁面連接過來的,服務器基此能夠得到一些信息用於處理。

 

xff 是http的拓展頭部,做用是使Web服務器獲取訪問用戶的IP真實地址(可僞造)。因爲不少用戶經過代理服務器進行訪問,服務器只能獲取代理服務器的IP地址,而xff的做用在於記錄用戶的真實IP,以及代理服務器的IP。

格式爲:X-Forwarded-For: 本機IP, 代理1IP, 代理2IP, 代理2IP

referer 是http的拓展頭部,做用是記錄當前請求頁面的來源頁面的地址。服務器使用referer確認訪問來源,若是referer內容不符合要求,服務器能夠攔截或者重定向請求。

【環境】

firefox選項-常規-網絡設置-手動代理配置(與burp suite代理地址相同)-不使用代理服務器-肯定

 

https的取得看https://baijiahao.baidu.com/s?id=1608443655431062847&wfr=spider&for=pc

【工具】

火狐瀏覽器插件hackbar

火狐瀏覽器插件modify headers(不要下載mini版本的)

或burp suite然間

【分析過程】

在Proxy的History裏找到目標網頁,右鍵選擇發送到repeater。

 

在repeater裏查看目標地址內容,添加:

X-Forwarded-For:123.123.123.123(這一步是僞造XFF,go一下,收到提示)

Referer:https://www.google.com(這一步是僞造Referer)

 


0x09 weak auth(弱口令密碼)

【題目描述】

小寧寫了一個登錄驗證頁面,隨手就設了一個密碼。

【目標】

掌握有關密碼爆破的知識

Intruder是一個定製的高度可配置工具,能夠對Web應用程序進行自動化攻擊。

原理:Intruder在原始請求數據的基礎上,經過修改各類請求參數獲取不一樣的請求應答。在每一次請求中,Intruder一般會攜帶一個或多個有效攻擊載荷(Payload),在不一樣的位置進行攻擊重放,經過應答數據的比對分析得到須要的特徵數據。

【工具】

Burp Suite

【分析過程】

查閱了不少資料(書、網頁等)

方法同上,設置Firefox的代理,找到目標網址,右鍵選擇發送到Intruder。(也能夠選擇Raw的文本)

 

找到Positions,清楚標記Clear,指針指向password=後面,添加標記Add,以下圖所示,將密碼放在兩個$pass$之間。

 

找到Payloads,加載Load Payload Options,將下載好的字典添加進去。

選擇左上角startAttack開始爆破。

 

結果在Results裏,選擇length排序,(點兩下)與其餘不同長的即是答案(通常說來,有特殊狀況)。如圖:

 

 

【名冊解釋】

Payload 載荷

Grep 匹配

Case Sensitive match 大小寫敏感

Number of retries on network failure 網絡故障的重試次數

pause before retry 重試前等待的時間

Throttle between requests 請求之間的等待時間

Recursive grep 遞歸查找

brute force 暴力破解

 

【參考書籍】

《Web安全攻防》Intruder模塊P60

【參考網頁】

  1. BurpSuite之Intruder詳解

對Intruder的解釋很是詳盡,而且配置了生動的圖文教程,是目前學習BurpSuite最好的網頁。值得推薦!

  1. Github上的爆破字典

這是一個來自Github上的字典,基本涵蓋了大多數的經常使用非複雜密碼。你,值得擁有!


0x10 web shell

【題目描述】

小寧百度了php一句話,覺着頗有意思,而且把它放在index.php裏

【目標】

瞭解如何使用web shell

【工具】

中國菜刀

蟻劍(還沒用過) https://github.com/AntSwordProject/antSword/releases(https://github.com/AntSwordProject/antSword/releases

【分析過程】

打開中國菜刀,右鍵空白處添加,填入以下內容:

 

編輯(肯定)後,雙擊添加的url,打開flag.txt。獲得flag

 

【參考網頁】

中國菜刀如何使用


0x11 command_execution

【題目描述】

小寧寫了個ping功能,但沒有寫WAF,X老師告訴她這是很是危險的,你知道爲何嗎。

【目標】

掌握有關命令執行的知識

windows或linux下:

command1 && command2 先執行command1,若是爲真,再執行command2

command1 | command2   只執行command2

command1 & command2   先執行command2後執行command1

command1 || command2  先執行command1,若是爲假,再執行command2

命令執行漏洞(| || & && 稱爲 管道符)

【工具】

【分析過程】

一臉懵逼

啥也不知道,爲何你們上來就知道flag藏在當前目錄的上三級目錄裏。

因此命令以下圖所示:

 

flag藏在home裏,繼續一臉懵逼。

 

這裏是懂了,使用cat命令打開flag

 

【參考書籍】

《Web安全攻防》命令執行模塊P173


0x12 simple php

【題目描述】

小寧據說php是最好的語言,因而她簡單學習以後寫了幾行php代碼。

【目標】

掌握php弱類型比較

php中有兩種比較符號:

==: 先將字符串類型轉化成相同,再比較值

===: 先將字符串類型轉化成相同,再比較值

字符串和數字比較使用==時,字符串會先轉換爲數字類型再比較 php var_dump('a' == 0);//true,這裏'a'會被轉換數字0 var_dump('123a' == 123);//true,這裏'123a'會被轉換爲123

【工具】

【分析過程】

var_dump('1234a' == 1234)結果爲true,php的弱類型比較會忽略字母a

因此後半段能夠用: html http://10.10.10.175:32779/index.php?a=a&b=1235a

這裏咱們採用以下圖所示的url。

a=字符0,if判斷a==0,字符0轉換成數字0,因此爲真;a爲字符,非空,爲真。

 


0xff 附錄

【總結】

web新手題12道所有完成,一共用了3-4天時間吧!感受web題須要的知識點很寬泛,須要平時的積累,其難度大多都是利用某一個點,多是尚未接觸進階題的緣故,因此題解都很簡單,只須要掌握一些簡單的工具和一些語言的部分語法便可食用!在這些工具裏,最強大最綜合的是Burp Suite了,熟練掌握對解題頗有幫助!可是有一個工具Nmap至今沒有接觸過,這個纔是網絡攻擊的最強殺手鐗。(不知道是否是還有沒有流通出來的完整版Nmap)接下來的計劃有兩種選擇:

  1. 從頭學習《web安全攻防》,主要涉及搭建本身的本地服務器,並對常見的web漏洞有一個直觀的感覺和實戰操做。爲下步打下堅實的基礎。但比較枯燥。
  2. 繼續解題,web的進階題,趣味性強,知識點寬泛且散度較大。不利於知識點的概括和總結。
相關文章
相關標籤/搜索