I春秋——web Write up(二)
前言:最近都沒有更新過,感覺博客快荒廢了,得更新了[]( ̄▽ ̄)*,這次總結一下做的一些web題。
一、Not Found
打開頁面便是404,但是下面有一個404.php,訪問一下
除下有出題人的haha,沒有其他信息了,御劍掃一下
打開頁面,發現也沒有有用的信息
重新回到原點,看看是不是漏掉些什么,看了出題人的提示
加上一個奇怪的參數
是不是和HTTP請求方式有關,百度查下
HTTP請求的方法:
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”),來表明Request-URL指定的資源不同的操作方式
1、OPTIONS
返回服務器針對特定資源所支持的HTTP請求方法,也可以利用向web服務器發送‘*’的請求來測試服務器的功能性
2、HEAD
向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。
3、GET
向特定的資源發出請求。它本質就是發送一個請求來取得服務器上的某一資源。資源通過一組HTTP頭和呈現數據(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠不會包含呈現數據。
4、POST
向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數:web_submit_data,web_submit_form
5、PUT
向指定資源位置上傳其最新內容
6、DELETE
請求服務器刪除Request-URL所標識的資源
7、TRACE
回顯服務器收到的請求,主要用于測試或診斷
8、CONNECT
HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。
這么多請求方式,挨個試下
CONNECT請求方式,發現是Apache/2.4.7 (Ubuntu) Server
OPTIONS請求方式,發現有不同的地方
訪問1.php,繼續使用OPTIONS請求方式
沒有有用的信息,查詢下是否存在flag.php
到這里感覺又沒思路了,看了大師傅的博客,發現Apache/2.4.7 (Ubuntu) Server的信息是有用的,Appache搭建的網站中,根目錄下會存在.htaccess文件
簡單了解一下.htaccess文件
htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。
訪問.htaccess文件
訪問8d829d8568e46455104209db5cd9228d.html,發現flag
EXEC
一只貓和no sign,提示說了執行、執行、執行,應該是命令執行這一類的,抓包看看是否有線索
發現vim,之前剛做過一個敏感信息泄露,里面就涉及到vim,這樣就簡單介紹一下
非正常關閉vim編輯器時(比如直接關閉終端或者電腦斷電),會生成一個.swp文件,這個文件是一個臨時交換文件,用來備份緩沖區中的內容,會導致程序的源碼泄漏。
/.index.php.swp發現確實有源碼被下載了,但是是swp文件,我們需要恢復一下
vi -r 文件名得到源碼
接下來就來審計代碼,先觀察check函數,函數包含的代碼很好理解,$number == '11259375',常規的數字肯定是繞不過去的,我們可以將number轉換成十六進制,這樣繞過check函數
簡單解釋下:
接下來看下面的代碼,發現
setcookie('auth','tcp tunnel is forbidden!');這句話的意思說明TCP被禁止,簡單了解一下TCP
傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由IETF的RFC 793 [1] 定義
這個跟我們做的題有什么關系,看了大師傅的博客,TCP被禁止不能用curl,那再來了解一下curl
cURL是一個利用URL語法在命令行下工作的文件傳輸工具,1997年首次發行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱cURL為下載工具。cURL還包含了用于程序開發的libcurl。
POST傳輸cmd命令,執行后也沒有回顯,之前的源碼中提示了flag所在的文件名,既然禁用了curl,那就用nc命令把flag文件下過來
然后在服務器端運行即可得出flag
(由于我沒有一臺公網能訪問的服務器,所以沒做這一步,但是方法沒有錯)
參考博客:
nc命令
curl命令
大師傅博客
vim源碼泄露
Login
一個簡易的登陸框,一開始以為是SQL注入,試了幾遍看了源碼,發現有賬號和密碼
登陸進去
一開始以為顏文字解密,結果解不開,那就抓包來看看有什么線索沒
一開始真的沒觀察到,看了大師傅的博客才發現show這個參數存在貓膩(show-顯示,0代表false,1代表true)
當show值為1時,出現了源碼
將源碼復制下來,審計代碼(注釋是自己加的)
class db這一段就是檢測和執行SQL查詢,最重要的是下面這段代碼
只要滿足
if($login['user'] === 'ichunqiu')即可得到flag
這里就涉及到php壓縮gzcompress和解壓gzuncompress字符串的方法
那思路就很明顯了,題中是解壓數據,那我們只需將ichunqiu壓縮然后傳遞即可
然后寫一個簡單的php腳本跑一下
<?php $login = array('user'=>'ichunqiu'); $a = base64_encode(gzcompress(serialize($login))); echo $a ?>
源碼中有一段代碼
得到token值后傳給cookie即可得出flag
總結:這次學到很多知識無論是HTTP請求方式,還是源碼泄露等,這次就先總結道這里,下次繼續總結!!
總結
以上是生活随笔為你收集整理的I春秋——web Write up(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XCTF(攻防世界)—进阶web题Wri
- 下一篇: I春秋——web Write up(三)