XCTF攻防世界Web之WriteUp


XCTF攻防世界Web之WriteUp

0x00 准備

內容

在xctf官網注冊賬號,即可食用。

【目錄】

目錄

0x01 view-source2

0x02 get post3

0x03 robots4

0x04 backup6

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。

 

【參考網址】

https://blog.csdn.net/weixin_43605586/article/details/90020256

【溫故知新】

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的進階題,趣味性強,知識點寬泛且散度較大。不利於知識點的歸納和總結。

 

 


免責聲明!

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



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