php168整站系统之CSRF攻击
时间:2010-06-02 来源:baoluowanxiang
CSRF是Cross Site Request Forgery的缩写,中文意思是跨网站请示伪造,也有人写成XSRF。黑客伪造目标用户的HTTP请求,然后将这个HTTP请求发送给有CSRF漏洞的网站。有CSRF漏洞的网站执行了伪造的HTTP请求,就引发了一个跨网站请求伪造攻击。黑客利用电子邮件或图片中隐藏的HTTP连接,让目标用户在注意的情况下单击这个链接。由于这个HTTP链接是由目标用户自己发出的,而目标用户又是拥有特定权限的合法用户,因此,有CSRF漏洞的网站将这个请求视为正常的HTTP请求而执行它。
例如,你访问的购物网站网址为:http://www.hacklu.net,你购买了一个产品,购物网站参数为:http://www.hacklu.net/buy.php?item=camera&quantity=1,这是一个正常的HTTP请求,商品名称是照相机camera,购买数量是1,网站会将所买的商品与数量记录在用户的账户内。
如果黑客知道了http://www.hacklu.net购物网站的操作流程,他就可以伪造一个类似的HTTP请求:http://www.hacklu.net/buy.php?item=camera&quantity=1000,商品名称是camera,而购买数量却是1000。如果目标用户在网站登录期间不小心访问了这个链接,那么在他的帐户内就是会有一条记录是购买1000台的camera。跨网站请求伪造攻击步骤如图1所示。
其实这个技术在国外2000年的时候已经被提出,而在国内一直没有被重视,可能大家认为这个只是自慰式的漏洞。一般CSRF配合XSS比较好,如果没有XSS的情况下,配合社工也是不错的。下面我以PHP168整站系统最新版为例。PHP168在经过多次的风风雨雨在XSS和SQL Injection方面都比较严格了。这次我利用CSRF攻击添加管理员。
添加管理员页面为:http://192.168.0.3/php168/admin/index.php?lfj=member&job=addmember,如图2所示。 我们看一下代码是怎么写的,如下: <form name="form1" method="post" action="index.php?lfj=member&action=addmember">
<tr class="head">
<td colspan="2">添加新用户</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">帐号:</td>
<td width="63%">
<input type="text" name="postdb[username]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">密码:</td>
<td width="63%">
<input type="password" name="postdb[passwd]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">重复密码:</td>
<td width="63%">
<input type="password" name="postdb[passwd2]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">所属用户组:<span help=1>只有超级管理员与创建人才能添加新的超级管理员,只有超级管理员与创始人及前台管理员才能添加新的前台管理员</span></td>
<td width="63%"> <select name='postdb[groupid]' ><option value='' selected>现有用户组</option> <option value='2' >游客组</option> <option value='3' >超级管理员</option> <option value='4' >前台管理员</option> <option value=''>--+以上是系统组,以下是会员组+--</option> <option value='8' >普通会员</option> <option value='9' >高级会员</option> </select> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">邮箱:</td>
<td width="63%">
<input type="text" name="postdb[email]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%"> </td>
<td width="63%">
<input type="submit" name="Submit" value="提交">
</td>
</tr>
</form>
本文转自 ☆★ 包罗万象网 ★☆ - http://www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/net-offense/loophole/2010/0418/489.html
如果黑客知道了http://www.hacklu.net购物网站的操作流程,他就可以伪造一个类似的HTTP请求:http://www.hacklu.net/buy.php?item=camera&quantity=1000,商品名称是camera,而购买数量却是1000。如果目标用户在网站登录期间不小心访问了这个链接,那么在他的帐户内就是会有一条记录是购买1000台的camera。跨网站请求伪造攻击步骤如图1所示。
其实这个技术在国外2000年的时候已经被提出,而在国内一直没有被重视,可能大家认为这个只是自慰式的漏洞。一般CSRF配合XSS比较好,如果没有XSS的情况下,配合社工也是不错的。下面我以PHP168整站系统最新版为例。PHP168在经过多次的风风雨雨在XSS和SQL Injection方面都比较严格了。这次我利用CSRF攻击添加管理员。
添加管理员页面为:http://192.168.0.3/php168/admin/index.php?lfj=member&job=addmember,如图2所示。 我们看一下代码是怎么写的,如下: <form name="form1" method="post" action="index.php?lfj=member&action=addmember">
<tr class="head">
<td colspan="2">添加新用户</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">帐号:</td>
<td width="63%">
<input type="text" name="postdb[username]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">密码:</td>
<td width="63%">
<input type="password" name="postdb[passwd]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">重复密码:</td>
<td width="63%">
<input type="password" name="postdb[passwd2]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">所属用户组:<span help=1>只有超级管理员与创建人才能添加新的超级管理员,只有超级管理员与创始人及前台管理员才能添加新的前台管理员</span></td>
<td width="63%"> <select name='postdb[groupid]' ><option value='' selected>现有用户组</option> <option value='2' >游客组</option> <option value='3' >超级管理员</option> <option value='4' >前台管理员</option> <option value=''>--+以上是系统组,以下是会员组+--</option> <option value='8' >普通会员</option> <option value='9' >高级会员</option> </select> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%">邮箱:</td>
<td width="63%">
<input type="text" name="postdb[email]">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="37%"> </td>
<td width="63%">
<input type="submit" name="Submit" value="提交">
</td>
</tr>
</form>
本文转自 ☆★ 包罗万象网 ★☆ - http://www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/net-offense/loophole/2010/0418/489.html
相关阅读 更多 +