php怎么随机高亮其中一个数组的字体颜色?

本文来自掌控安全学员-

无参数RCE理解与利用

无参数RCE就类似与在我们经常使用的一句话木马前面,加上了对参数的过滤,过滤的正则一般类似于一道ctf题目给的这种。

带上参数比如system('ls /');是匹配不到的,过不了判断条件,所以我们只能使用没有参数的函数来进行远程代码执行

我在理解这个正则的时候碰到了一些问题,下面是我的理解和测试的一些结果: 1.首先,这个正则是怎么匹配的呢,顺序是怎么样的 比如a(b(c()))这个格式的函数匹配的顺序如下:

整个正则可以分为三部分
 [a-z,_]+\( 直到递归前面可以看作一个匹配整体
 (?R)? 递归部分看作一个匹配整体
 \) 递归后面的看作一个匹配整体
开始匹配,下面是匹配的顺序
a( //匹配上面第一个匹配整体,然后进入第一次递归
 b( //匹配上面第一个匹配整体,进入第二次递归
 c( //匹配上面第一个匹配整体,进入第三次递归
 //没有匹配第一个匹配整体,递归停止
 ) //匹配第二次递归剩下的表达式,即第三个匹配的整体\),
 ) //匹配第一次递归剩下的表达式,即\),
) //匹配原表达式剩下的表达式,即\),

2.(?R),(?R)?,(?R)*,(?R)+的区别 首先(?R) , (?R)+ 这两个表达式是匹配不到东西的,因为每次匹配的时候都会至少运行一次递归,无法终止,所以匹配不到任何东西。 (?R)?,递归0次或1次,非贪婪,只能匹配a(b())这种一层套一个函数的。

利用正则表达式递归过滤 参考: 利用诸多php函数嵌套实现RCE 参考:

下面这些函数有一部分是我从上面大佬的博客整理来的,方便进行整理和翻阅,再进行构造无参数函数RCE的时候可以相互组合使用。

将整个文件读入一个字符串

读取文件并写入到输出缓冲。

列出指定路径中的文件和目录

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。

返回一包含本地数字及货币格式信息的数组,第一个值一直是.

获取/设置当前会话 ID

启动新会话或者重用现有会话

还有一些可以用到的函数,

  • chr():返回指定的字符
  • rand():产生一个随机整数
  • hex2bin():转换十六进制字符串为二进制字符串
  • ord:返回字符串的第一个字符的 ASCII 码值。

打开网站,只有一句话,其它什么也没有,直接用字典扫dir,发现有.git,使用githacker进行提取。拿到index.php源码。

发现有三层正则匹配,第一层过滤了一些伪协议,第二层就是无参数化了,第三层过滤了一些敏感函数(get,phpinfo,hex2bin,dirname……)。完全绕过后就可以执行代码了。

也可以用它执行部分命令

参考 这个也是我博客的一篇文章
}

我要回帖

更多关于 java设置随机颜色的代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信