任務(1)
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
xss-labs安裝中配置問題較多,百度即可。
3.瞭解php偽協議
(1)偽協議-過濾器base64
轉換過濾器 convert. 就是==
如果想讀取php檔案的原始碼,可以先base64編碼這樣就不會被認為是php檔案而無法執行
-
編碼:convert.base64-encode 利用base64_encode()函式處理所有流資料。
-
解碼:convert.base64-decode 利用base64_decode()函式處理所有流資料。
(2)偽協議-input
執行post資料中的php程式碼
-
在enctype="multipart/form-data"的時候 php://input` 是無效的。
-
返回值:如果成功的話返回所請求的變數。如果過濾失敗則返回
FALSE
,如果variable_name
不存在的話則返回NULL
。 如果標示FILTER_NULL_ON_FAILURE
被使用了,那麼當變數不存在時返回FALSE
,當過濾失敗時返回NULL
。
(3)php偽協議其餘部分
- file:// [檔案的絕對路徑和檔名] : 用於訪問本地檔案系統,在CTF中通常用來讀取本地檔案的且不受allow_url_fopen與allow_url_include的影響。
- zip://, bzip2://, zlib:// : 均屬於壓縮流,可以訪問壓縮檔案中的子檔案,更重要的是不需要指定字尾名。
- data:// : data://text/plain;base64,
- http:// & https:// : 常規URL形式,允許通過HTTP 1.的GET方法,以只讀訪問檔案或資源。CTF中通常用於遠端包含。
- phar:// : 與zip://類似,同樣可以訪問zip格式壓縮包內容
(4)php配置和小結
-
PHP.ini:
allow_url_fopen :on 預設開啟 該選項為on便是激活了 URL 形式的 fopen 封裝協議使得可以訪問 URL 物件檔案等。
allow_url_include:off 預設關閉,該選項為on便是允許 包含URL 物件檔案等
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-XXxzbM8c-1610783898344)(file:///C:/Users/lenovo/Desktop/S6KMH%7BODCLCW(36XU)]HC8LR.png)
4.md5弱比較與=== 和 ==
-
以0e開頭為科學計數法,結果均等於0
舉例
-
s878926199a
0e545993274517709034328855841020 -
QNKCDZO
0e830400451993494058024219903391 -
240610708
0e462097431906509019562988736854
-
-
===比較兩個變數的值和型別 ==比較兩個變數的值,不比較資料型別。
舉個例子:
$a=‘2’;//字元型2
$b=2;//數值型2 a==$b,是對的,都是2
a = = = a=== a===b,是不對的,因為 a 是 字 符 型 a是字元型 a是字符型b是數值型,值雖一樣,但型別不一樣。