1. 程式人生 > 其它 >任務(1)

任務(1)

技術標籤:c++md5labs

1.累加求和

(1)遞迴

#include <stdio.h>

int digui(int n)
{
	if(n==1)
	 {
	 	return 1;
	 } 
	else 
	 {
	 	return (digui(n-1)+n);
	 } 
}
int main()
{
	int n;
	scanf("%d",&n);
   printf("%d",digui (n)); 
   return 0;
}

(2)非遞迴

#include <stdio.h>
int main()
{
	int n,i,s=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		s=s+i;
	}
	printf("%d",s);
	return 0;
}

2.搭建sqli-labs xss-labs

sqli-labs安裝教程

xss-labs下載安裝相關教程

xss-labs安裝中配置問題較多,百度即可。

3.瞭解php偽協議

(1)偽協議-過濾器base64

轉換過濾器 convert. 就是==

如果想讀取php檔案的原始碼,可以先base64編碼這樣就不會被認為是php檔案而無法執行

  1. 編碼:convert.base64-encode 利用base64_encode()函式處理所有流資料。

  2. 解碼:convert.base64-decode 利用base64_decode()函式處理所有流資料。

    decode和encode區別

(2)偽協議-input

執行post資料中的php程式碼

  1. 在enctype="multipart/form-data"的時候 php://input` 是無效的。

  2. 返回值:如果成功的話返回所請求的變數。如果過濾失敗則返回 FALSE ,如果variable_name 不存在的話則返回 NULL 。 如果標示 FILTER_NULL_ON_FAILURE 被使用了,那麼當變數不存在時返回 FALSE ,當過濾失敗時返回 NULL

(3)php偽協議其餘部分

  1. file:// [檔案的絕對路徑和檔名] : 用於訪問本地檔案系統,在CTF中通常用來讀取本地檔案的且不受allow_url_fopen與allow_url_include的影響。
  2. zip://, bzip2://, zlib:// : 均屬於壓縮流,可以訪問壓縮檔案中的子檔案,更重要的是不需要指定字尾名。
  3. data:// : data://text/plain;base64,
  4. http:// & https:// : 常規URL形式,允許通過HTTP 1.的GET方法,以只讀訪問檔案或資源。CTF中通常用於遠端包含。
  5. phar:// : 與zip://類似,同樣可以訪問zip格式壓縮包內容

(4)php配置和小結

  1. PHP.ini:

    allow_url_fopen :on 預設開啟 該選項為on便是激活了 URL 形式的 fopen 封裝協議使得可以訪問 URL 物件檔案等。

    allow_url_include:off 預設關閉,該選項為on便是允許 包含URL 物件檔案等

  2. [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-XXxzbM8c-1610783898344)(file:///C:/Users/lenovo/Desktop/S6KMH%7BODCLCW(36XU)]HC8LR.png)

4.md5弱比較與=== 和 ==

  1. 以0e開頭為科學計數法,結果均等於0

    舉例

    • s878926199a
      0e545993274517709034328855841020

    • QNKCDZO
      0e830400451993494058024219903391

    • 240610708
      0e462097431906509019562988736854

  2. ===比較兩個變數的值和型別 ==比較兩個變數的值,不比較資料型別。

    舉個例子

    ​ $a=‘2’;//字元型2
    ​ $b=2;//數值型2

    ​ a==$b,是對的,都是2
    a = = = a=== a===b,是不對的,因為 a 是 字 符 型 a是字元型 ab是數值型,值雖一樣,但型別不一樣。