一个神秘的一句话后门代码详解
admin
2023-06-26 16:22:13
0

神秘的一句话后门代码内容:



代码作用:

以上代码即是PHP的一句话后门,当POST数据为0=assert&1=phpinfo();则会执行assert('phpinfo()');

在FireFox下使用HackBar插件模拟发送POST请求的结果如下图所示:


一个神秘的一句话后门代码详解

为什么说他神秘呢?因为奇怪的是,代码里面没有一个正常的代码字符,却能接收POST的数据,并执行系统函数。接下来,分析他是如何能够执行的。


格式化代码,并打印结果:


由打印数据我们可以看到,其实,代码本身就是最后执行了$_POST['0']($_POST['1']);而其中的_POST的每个字符都是由两个符号进行异或操作后拼接得到的。


那么问题来了,为什么异或后会得到_POST呢。这里就牵涉到PHP的字符串异或运算。首先解释下,什么叫异或操作。异或操作一般叫做按位异或。意思就是两个二进制数,按位进行运算,同为0或1的结果为0,不相同的结果为1。比如10101100 ^ 11010010 = 01111110。而PHP的字符串异或运算总共有下面5个步骤:

1.将需要进行异或的两个字符串都转行成十进制的asc2码值;
2.将asc2码值转换成二进制数;
3.将转换后的二进制数进行按位异或操作;
4.将异或后得到的二进制数转换成十进制数;
5.根据asc2码表,将十进制数转换成字符串并返回.
至此,PHP的字符串异或操作完毕

于是,可以解释,为什么最终会得到_POST字符串。比如下划线_的获得,就是先将#和|都转行成十进制的asc2码值,35和124(在PHP中可以使用ord函数获取到字符串对应的asc2码值),然后将35和124都转换成二进制数00100011和01111100然后按位异或得到01011111然后转换成十进制是95,然后得到由asc2码表得到95对应的字符串为_(在PHP中可以使用chr函数获取到十进制数对应的asc2码表的字符串


了解到PHP字符串异或运算的原理,那么,其实我可以修改下此后门,改成由GET接收参数。


为了知道哪两个单字符的异或运算可以分别得到G或者E,做如下程序,打印一个列表,得到任意两个单字符进行异或的结果




异或值A
异或值B
异或结果



	
	
		
			
			
			
		
	


由如上的列表可以查到G可以由 ' ^ ` 得到,E可以由 8 ^ } 得到,于是如下的程序也可以作为一句话后门,并且参数是由GET传递:



至此,神秘的一句话后门详解完毕。

相关内容

热门资讯

美民调:超半数美国人称生活成本... 据凤凰卫视报道,美国政治新闻网5月29日公布的最新民调显示,美国选民仍然不满意总统特朗普的经济政策,...
燃气灶开关无法控制怎么办 燃气灶开关无法控制,这是一种非常危险的情况。这种情况可能会导致燃气泄漏和火灾等严重后果。如果您遇到这...
为什么海尔冰箱冷冻室温度显示一... 这种情况表示的是超温报警灯亮了。也就是说冰箱的冷冻室温度没有降下去,冷冻室温度降到零下8度左右就自动...
西门子冰箱冷冻室温度一直闪烁是... 1、有可能是因为操作不当导致的情况;2、有可能是西门子冰箱显示屏的供电电源或显示屏本身的故障。 ...
冰雪儿点菜柜冷冻室温度灯一直闪 1、可能是因为冰雪儿点菜柜的压缩机遭到了损坏。 2、可能是因为点菜柜的内部电路发生了断路。3、可能是...
海尔冰箱冷冻温度一直闪怎么解决 一直闪可能是超温报警灯亮了,这说明冷冻室的温度出现了异常,一般是温度过高造成的报警,看看冷冻室是否关...
健康证上标注“女性私密”?越界... 南方都市报29日报道,深圳一市民陈某(化名)在深圳市南山区妇幼保健院办理托幼岗位健康证时遭遇乱象。据...
2026香格里拉对话会开幕,中... 第23届香格里拉对话会5月29日晚在新加坡开幕,来自40多个国家和地区的政要、防务官员和专家学者等共...
美国中期选举:谁是骄兵必败,谁... 【文/观察者网专栏作者 周德宇】从特朗普二次执政以来,其民调可以说是一路雪崩,连累着共和党也一起遭殃...
芗城区科协开展全国科技工作者日... 5月27日,芗城区科协联合东铺头街道、瑞京社区等单位,走进芗城实幼东铺头园区,开展芗城区全国科技工作...