ctf-wiki
ctf-wiki copied to clipboard
web中PHP篇解析有误

确实,这里只是简单的字符串异或而已,字符串本身没有其他特别的意义。删掉中间的那些解释就行:
这段代码一大坨是啥意思呢?因为40个字符长度的限制,导致以前逐个字符异或拼接的webshell不能使用。
- 这里可以使用php中可以执行命令的反引号 `` ` `` 和 `Linux` 下面的通配符 `?`
- - `?` 代表匹配一个字符
- - `` ` 表示执行命令
- - `" ` 对特殊字符串进行解析
- 由于 `?` 只能匹配一个字符,这种写法的意思是循环调用,分别匹配。我们将其进行分解来看:
+ 我们可以使用字符串进行异或构造其他字符,我们将上述代码其进行分解来看:
@ZeddYu @qNwNp 我感觉原作者这里应该是专门写的,只是表达可能不太清晰。删掉不太好。
@ZeddYu @qNwNp 我感觉原作者这里应该是专门写的,只是表达可能不太清晰。删掉不太好。
这里真就不是那个意思,只是简单的字符串异或操作,原作者的的意思会让人误解。比如反引号异或问号输出下划线,只是简单的字符串异或,这个字符串没有反引号代表的执行命令的意思,问号也没有代表匹配一个字符的意思,完全可以删掉。或者叫原作者 Review 都可以
@ZeddYu 我也找不到是谁了。。 @40huo 还记得是谁写的么。。
@ZeddYu 我也找不到是谁了。。 @40huo 还记得是谁写的么。。
Use git blame
@StoneMoe Thanks. Using the command directly doesn't give the true result. So I checkout to a very older version and find the author. @AngelKitty 看一哈?
我觉得可以改掉,^ 的两边加个空格可能更好理解一点 #803
@ZeddYu @qNwNp 我感觉原作者这里应该是专门写的,只是表达可能不太清晰。删掉不太好。
这里真就不是那个意思,只是简单的字符串异或操作,原作者的的意思会让人误解。比如反引号异或问号输出下划线,只是简单的字符串异或,这个字符串没有反引号代表的执行命令的意思,问号也没有代表匹配一个字符的意思,完全可以删掉。或者叫原作者 Review 都可以
直接去掉会有些突兀,会感觉少了一些东西,比如“为什么能够按照顺序循环匹配进行异或计算”这个原因没有说清楚,这个匹配的规则或者原理最好是能够说明一下比较妥当。这部分在之前写的时候确实是没考虑到你说的这个问题。
OK. 我暂时没有更多精力来处理这个 issue 了,我已经关闭了 PR ,如果有人处理该 issue ,可以参考以上。
@ZeddYu @qNwNp 我感觉原作者这里应该是专门写的,只是表达可能不太清晰。删掉不太好。
这里真就不是那个意思,只是简单的字符串异或操作,原作者的的意思会让人误解。比如反引号异或问号输出下划线,只是简单的字符串异或,这个字符串没有反引号代表的执行命令的意思,问号也没有代表匹配一个字符的意思,完全可以删掉。或者叫原作者 Review 都可以
直接去掉会有些突兀,会感觉少了一些东西,比如“为什么能够按照顺序循环匹配进行异或计算”这个原因没有说清楚,这个匹配的规则或者原理最好是能够说明一下比较妥当。这部分在之前写的时候确实是没考虑到你说的这个问题。
但这里是一个明显的错误,建议还是改掉,不要误导初学者。
- 这里可以使用php中可以执行命令的反引号 `` ` `` 和 `Linux` 下面的通配符 `?`
- - `?` 代表匹配一个字符
- - `` ` 表示执行命令
- - `" ` 对特殊字符串进行解析
- 由于 `?` 只能匹配一个字符,这种写法的意思是循环调用,分别匹配。我们将其进行分解来看:
这里的?, `, " 没有任何特殊含义,就是单纯的字符