0

我正在测试一些 PHP 应用程序的可注入命令。我必须将我的命令转换为 URI/CGI 编码格式。我想知道是否有更好的方法来做到这一点。

当我想包含一个 ping (以测试应用程序是否实际上是从注入执行)时,我将其转换如下。

hURL -X --esc ";ping localhost -c 1" | sed -e ‘s/\\x/\%/g’

这是输出。

%3b%20%70%69%6e%67%20%6c%6f%63%61%6c%68%6f%73%74%20%2d%63%20%31

完美运行。代码被注入,日志显示它正在按预期处理。

问题: 有没有更好的方法来转换为上述内容。我想我把事情复杂化了。

4

1 回答 1

0

您可以使用开箱即用的库来进行转义,可能会更容易一些......

$ echo ';ping localhost -c 1' | perl -ne 'use URI::Escape; print(uri_escape($_) . "\n");'                                                                                                              
%3Bping%20localhost%20-c%201%0A

显然,此输出不会转义合法的 url 字符,因此不确定这是否完全回答了您的问题...

于 2020-01-07T16:53:33.180 回答