ctf常見php弱型別分析

2022-07-03 15:42:10 字數 863 閱讀 2712

1. 布林反序列化

1

$unserialize_str = $_post

[『password『];

2$data_unserialize = unserialize($unserialize_str);

3 if($data_unserialize[『user『]==『???『&&$data_unserialize[『pass『]==『???『)

4

反序列化後得到的值的user和pass都為不知道的,但是這裡是兩個==,根據php弱型別,bool值和任何字串都為相等,即可以構造user和pass的值為bool

2.php引用賦值

1

<?php

2class

just4fun 78

if (isset($_get

[『pass『]))

15$o = unserialize($pass

); 16

if ($o

) 17

21else

echo "are you trolling?"; } ?>

這道題雖然不涉及弱型別,但是涉及到語言中的引用賦值,也是乙個點,要使解序列化後的 (secret===enter)

這裡是三個等號,要使這兩個變數相等,且secret已經被賦值,所以用引用賦值的方式,$a=&$b,則變數a和b指向同乙個資料,兩個值一定相等

CTF學習之路1 php弱型別WriteUp

1.easy md5 檢視原始碼 使用強等於,使用陣列繞過,相當於error error 使用bp抓包構造post param1 1 m2 2獲得flag 2.md5 collision 檢視源 使用bp抓包,並修改post值 p1 4d c9 68 ff 0e e3 5c 20 95 72 d4 ...

php 弱型別總結

最近ctf比賽,不止一次的出了php弱型別的題目,藉此想總結一下關於php弱型別以及繞過方式 php中有兩種比較的符號 與 a b a b 在進行比較的時候,會先判斷兩種字串的型別是否相等,再比較 在進行比較的時候,會先將字串型別轉化成相同,再比較 如果比較乙個數字和字串或者比較涉及到數字內容的字串...

php 弱型別比較

php中 是弱等於,不會比較變數型別 是強等於,會先比較變數型別。0e 開頭跟數字的字串 例如 0e123 會當作科學計數法去比較,所以和0相等 0x 開頭跟數字的字串 例如 0x1e240 會被當作16進製制數去比較 布林值true和任意字串都弱相等。當比較的一方是字串時,會先把其轉換為數字,不能...