山东某公司诚聘信息安全工程师

山东某公司诚聘安全工程师

要求熟悉网站渗透、网络攻防,

签定正式合同,五险一金,法定节假日休息,提供住宿。

有竞争力的薪资外加项目奖金。

学历无要求,有内网经验或发表过原创文章者优先考虑。

也欢迎热爱网络安全事业的应届毕业生踊跃报名。 联系QQ:503510674,请注明:应聘。

Java动态调用Groovy

 

package com.neeao.groovy;

import groovy.lang.Binding;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyShell;
import groovy.util.GroovyScriptEngine;

public class helloGroovy {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		long time = System.currentTimeMillis();
		fun1();
		fun2();
		fun3();
		System.out.print(System.currentTimeMillis() - time);
		System.out.println(" ms");
	}

	private static void fun3() {
		try {
			GroovyScriptEngine engine = new GroovyScriptEngine("");
			Binding binding = new Binding();
			binding.setVariable("language", "Groovy");
			Object value = engine.run("SimpleScript.groovy", binding);
			assert value.equals("The End");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static void fun2() {
		Binding binding = new Binding();
		binding.setVariable("x", 10);
		binding.setVariable("language", "Groovy");
		GroovyShell shell = new GroovyShell(binding);
		Object value = shell.evaluate("println \"Welcome to $language\"; y = x * 2; z = x * 3; println x ");
		assert value.equals(10);
		assert binding.getVariable("y").equals(20);
		assert binding.getVariable("z").equals(30);
	}

	private static void fun1() {
		GroovyClassLoader loader = new GroovyClassLoader();
		try {
			String scriptText = "class Foo {\n"
					+ "  int add(int x, int y) { x + y }}";
			Class<?> newClazz = loader.parseClass(scriptText);
			Object obj = newClazz.newInstance();
			Object i = obj.getClass().getMethod("add", int.class, int.class)
					.invoke(obj, 23, 3);
			System.out.println(i);
		} catch (Exception e) {

		}
	}

}

参考:

http://zjx158.iteye.com/blog/770763

http://tglnn.iteye.com/blog/376978

 

Talend中mysql数据库中文乱码解决

 

添加数据链接的时候,在Additional parameters默认设置noDatetimeStringSync=true后面增加编码设置:

&characterEncoding=UTF-8

最后设置为:

“noDatetimeStringSync=true&characterEncoding=UTF-8”


祥见:http://www.talendforge.org/forum/viewtopic.php?id=16201

 

检查Maven项目中ibatis的SQL注入的maven插件

记录下:

CheckMojo.java

package com.neeao.security.ibatis_sql_injection_check;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import org.apache.commons.io.FileUtils;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;

/**
 * @author Neeao
 * @goal check
 * @phase prepare-package
 */
public class CheckMojo extends AbstractMojo {
	/**
	 * Web资源文件目录
	 * 
	 * @parameter expression="${basedir}/src/main/resources"
	 */
	private File resourcesDirectory;

	public void execute() throws MojoExecutionException {
		getLog().info("start sql injection check...");

		File resourcesDir = resourcesDirectory;
		if (resourcesDir.exists()) {
			getLog().info("Find ibatis xml file...");
			findFiles(resourcesDir);

		}
	}
	/**
	 * 查找文件
	 * @param dir
	 */
	private void findFiles(File dir) {
		File[] files = dir.listFiles();
		for (File f : files) {
			if (f.isFile()&&f.getName().toLowerCase().endsWith(".xml")) {
				getLog().info("find xml file:" + f.getAbsolutePath());
				checkFile(f.getAbsolutePath());
			} else if (f.isDirectory()) {
				findFiles(f);
			}
		}
	}
	/**
	 * 检查文件
	 * @param filename
	 */
	private void checkFile(String filename) {
		ArrayList<String> content = new ArrayList<String>();
		try {
			content = (ArrayList<String>) FileUtils.readLines(new File(filename));
			int i=1;
			for (String line : content) {
				if (line.contains("$")) {
					getLog().error(filename+",line:"+i+","+line);
				}
				i++;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public File getResourcesDirectory() {
		return resourcesDirectory;
	}

	public void setResourcesDirectory(File resourcesDirectory) {
		this.resourcesDirectory = resourcesDirectory;
	}
}
pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.neeao.security</groupId>
	<artifactId>sql--injection-check</artifactId>
	<packaging>maven-plugin</packaging>
	<version>1.0</version>
	<name>sql-injection-check Maven Mojo</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-plugin-api</artifactId>
			<version>2.0</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
	</dependencies>
</project>

 

test方法:

 

mvn clear

mvn packape

mvn install

 

D:\workspace\ibatis-sql-injection-check>mvn com.neeao.security:sql--injection-ch
eck:1.0:check
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building sql-injection-check Maven Mojo 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- sql--injection-check:1.0:check (default-cli) @ sql--injection-check -
--
[INFO] start sql injection check...
[INFO] Find ibatis xml file...
[INFO] find xml file:D:\workspace\ibatis-sql-injection-check\src\main\resources\
NewFile.xml
[ERROR] D:\workspace\ibatis-sql-injection-check\src\main\resources\NewFile.xml,l
ine:3,      name like '%$name$%'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.196s
[INFO] Finished at: Tue Nov 27 23:59:25 CST 2012
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------

 

WebshellAutoCheck 1.0 Webshell自动检查工具 for windows

WebshellAutoCheck 1.0 Webshell自动检查工具 for windows

主要功能说明:

1.webshell检查,支持任意后缀的脚本检查,包括asp/php/jsp/***等;

2.敏感文件检查, 如bak/sql/log/***文件;

3.白名单功能,排除误报,报告处理的最大问题;

4.自动定时扫描,支持window定时任务和服务形式启动;

5.邮件自动通知,扫描完成自动邮件提醒;

使用说明:

1.文件说明:

WebshellAutoCheck.exe 主程序

config.xml 配置文件

2.主要参数:

D:\>WebshellAutoCheck /?

WebshellAutoCheck 1.0 By:Neeao

http://neeao.com

WebshellAutoCheck /install      Install services.

WebshellAutoCheck /uninstall    Uninstall services

WebshellAutoCheck /start        Start services

WebshellAutoCheck /stop Stop services

WebshellAutoCheck /scan Only scan once.

/install 安装为服务形式,默认为自启动服务.

/uninstall 卸载服务(有个小bug,卸载完毕不能立即从服务管理里消失,等会就好了,不影响使用)

/start 启动服务自动检查(启动前请跟进config.xml文件中说明进行相关配置再启动)

/stop 关闭服务

/scan 仅仅进行扫描

3.config.xml文件说明:

<?xml version="1.0" encoding="gb2312"?>
<root>
  <server>
	<!--scan_dirs节点需要扫描的目录,多个目录使用;分割-->
	<scan_dirs>d:\wwwroot</scan_dirs>
	<!-- speed,数值越大扫描越快,占用资源也越多 -->
    <speed>8</speed>
	<!--cycle节点自动扫描间隔,单位秒,修改后需重启服务-->
	<cycle>60</cycle>
  </server>
  <!-- 自动邮件通知 发送send=1,不发留空-->
  <mail is_send="1">
	<username>testmail</username><!--邮件发送帐户名-->
	<password>testmail</password><!--邮件发送密码-->
	<stmp>smtp.neeao.com</stmp><!--邮件服务器地址-->
	<sender_name>Check</sender_name><!--邮件发送者名称-->
	<sender_address>neeao@neeao.com</sender_address><!--邮件发送者邮箱地址-->
	<receiver_name>Neeao</receiver_name><!--邮件接收者名称,多个接收者名称用;分割-->
	<receiver_address>neeao@neeao.com</receiver_address><!--邮件接收者邮箱地址,多个用;分割,顺序和接收者对应-->
	<subject>WebShell检查通知邮件</subject><!--邮件通知的标题-->
  </mail>
<!-- 扫描规则,lang节点为标记扫描规则名称,filetype为扫描的文件类型,支持windows通配符,多个用;分割-->
<!-- 特殊文件扫描,主要通过is_file节点值区分,为1则是仅扫描文件名 -->
<!-- webshell扫描,is_file为空-->
<!-- 扫描规则设置,关键词采用tr1正则表达式,regexp为匹配规则, exclude为排除规则,desc为对此条规则的通知描述-->
  <language>
    <list lang="bak" filetype="*bak*" is_file="1"/>
	<list lang="asp" filetype="*.asp;*.asa;*.cer" is_file="">
      <keyword regexp="(WScript\.Shell|72C24DD5-D70A-438B-8A42-98424B88AFB8|F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)+" exclude="1" desc="发现WScript.Shell组件"/>
      <keyword regexp="(Wscript\.Network|093FF999-1EA0-4079-9525-9614C3504B74)+" exclude="Wscript.Network" desc="发现Wscript.Network组件调用"/>
      <keyword regexp="(Shell\.Application|13709620-C279-11CE-A49E-444553540000)+" exclude="" desc="发现Shell.Application组件"/>
      <keyword regexp="(Scripting\.FileSystemObject|0D43FE01-F093-11CF-8940-00A0C9054228)+" exclude="" desc="发现FSO组件调用"/>
      <keyword regexp="(adodb\.stream|00000566-0000-0010-8000-00AA006D2EA4)+" exclude="" desc="发现adodb.stream组件调用"/>
      <keyword regexp="(MSXML2.XMLHTTP|Microsoft.XmlHttp|88D969C5-F192-11D4-A65F-0040963251E5|88D969EA-F192-11D4-A65F-0040963251E5)+" exclude="" desc="发现Microsoft.XmlHttp组件调用"/>
      <keyword regexp="LANGUAGE\s*=\s*(vbscript|jscript|javascript).encode" exclude="" desc="发现脚本加密函数encode1"/>
      <keyword regexp="[^\.](Eval|Execute|ExecuteGlobal)\s*[\(]?\s*(request|session)" exclude="" desc="发现Eval|Execute函数书写的一句话webshell."/>
    </list>
    <list lang="jsp" filetype="*.jsp" is_file="">
      <keyword regexp="Runtime\.getRuntime\(\)\.exec" exclude="" desc="发现jsp命令执行方法"/>
      <keyword regexp="java\.io\.FileOutputStream\(application\.getRealPath\(" exclude="" desc="发现jsp一句话webshell"/>
    </list>
    <list lang="aspx" filetype="*.aspx" is_file="">
      <keyword regexp="Environment\.(OSVersion|MachineName|GetEnvironmentVariables)" exclude="" desc="发现Environment对象调用"/>
    </list>
  </language>
  <!-- 白名单设置,添加白名单:在white中添加新的list节点,如下,path节点为白名单路径,md5借点为文件的md5值-->
  <white>
   <list path="d:\wwwroot\2006.asp" md5="a6c21f051e354846b3080e9c0549b89d"/>
  </white>
</root>

4.debug模式

在程序当前目录创建一个debug.log的空文件,重启服务,debug信息将写入此文件。

注意使用完删除此文件。

附件:webshellautocheck.20121124.rar(211323 Byte)

TR1正则表达式:http://msdn.microsoft.com/zh-cn/library/bb982727.aspx

安恒信息技术公司招聘安全服务/渗透测试工程师

安恒信息技术公司招聘安全服务工程师、安全渗透测试工程师

岗位职责:
1、对于相应技术领域(例如,Unix系统、Windows系统、数据库应用、网络设备、安全设备、Web应用等)进行风险评估;
2、独立完成评估报告。
岗位要求:
1、熟悉主流的Web安全技术,包括SQL注入、XSS、CSRF安全风险;
2、熟悉国内外主流安全产品、工具,如:AppScan扫描器、wvs等;
3、多年web安全工作经验,对Web安全测试有自己的理解
4、熟悉常见攻击和防御办法,熟悉web安全和渗透技术,能自行进行web渗透测试,恶意代码监测和分析;
5、有测试自动化经验者优先;
6、实际动手能力强,有良好的团队精神
7、善于学习新的知识,具有开拓创新精神
8、较好的文档撰写能力
9、良好的语言表达和与客户沟通能力
10、熟悉各种安全产品安装和使用
11、有相关经验者优先
薪资待遇:
面谈
公司另外每个月发车补、电话补助、电脑补助等
工作地点:
北京四通桥人民大学C口5分钟路程

联系人:
ning.yang@dbappsecurity.com.cn