Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix(Web): fix issue#795 #803

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 1 addition & 7 deletions docs/zh/docs/web/php/php.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,13 +409,7 @@ $__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/");
```

这段代码一大坨是啥意思呢?因为40个字符长度的限制,导致以前逐个字符异或拼接的webshell不能使用。
这里可以使用php中可以执行命令的反引号 `` ` `` 和 `Linux` 下面的通配符 `?`

- `?` 代表匹配一个字符
- `` ` 表示执行命令
- `" ` 对特殊字符串进行解析

由于 `?` 只能匹配一个字符,这种写法的意思是循环调用,分别匹配。我们将其进行分解来看:
我们可以使用字符串进行异或构造其他字符,我们将上述代码其进行分解来看:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我觉得这里比较合适的描述是:

对于PHP中的字符串,两个字符串异或的结果是将两个字符串逐位异或,返回一个新字符串。
我们可以使用不含有字母数字的字符串相互异或,来构造含有字母数字的字符串。我们将上述代码其进行分解来看:


```
<?php
Expand Down