记一次对php聊天室的攻击
发言者:kent 发言时间:2001-09-10 15:17:56
摘自:晨风创意
原作者:eastdark
--------------------------------------------------------------------------------
网友“小好”给我了一个聊天室ip,让我去看看。原本想入侵它的服务器,大概技术没到家,搞了十几分钟,也没有进去。于是,我就想找找这个聊天室有什么BUG。聊天室看得出是用PHP+MySQL组建的。栏目有:用户注册、 忘记密码、 修改资料、 用户自杀、 聊 神 榜、 聊天说明、 刷新列表 。接着就是聊天了。
我随便注册了一个用户名,按照我的喜好,喜欢开xxxxxx用户,这样,我就用xxxxxx注册了一个用户。登陆进去。
从哪儿下手呢?我想还是先看看修改资料,一般聊天室这里总有这样那样的漏洞。点了一下修改资料,于是就进入下一画面,需要输入用户名和秘密。输好了后,下一步,进入资料修改。YES!资料修改中有用户昵称,其实就是用户名,马上查看源文件,看到如下的HMTL语句:
=================================================cut===========
<form name="ezchat" action="modifyed.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="active" value="change">
<input type="hidden" name="user_name" value="xxxxxx">
<input type="hidden" name="user_passwd_t" value="xxxxx">
<table cellspacing=1 cellpadding=2 width="675" border=0 align=center bgcolor="#FFFFFF">
<tr align=center bgcolor="#FFD193">
<td colspan="4" height="22">用户资料</td>
</tr>
<tr align=center bgcolor="#FFEACE">
<td width="20%" height="22">
<div align="left">用户昵称:<font color="#FF0000"><b>*</b></font></div>
</td>
<td width="30%" height="22">
<div align="left">
<input type="text" name="user_name_1" readonly class="input" value="xxxxxx">
</div>
</td>
==========================================end==================
很明显,其中的两个hidden是用来判断你是否有修改资料的权限,可是,这个人没想到的是放了一个readnly的输入框并不安全,就像上一次一个asp论坛一样,readonly并不能解决什么。按照惯例,我存了这个文件,并不修改两个hidden,把readonly去掉。然后到聊神榜随便看了个用户名。修改form的action,记得要在前面加上url路径,然后改掉这个用户昵称。按下“修改”命令,出现了什么?
=========================================
修改成功
恭喜您,您已经成功修改资料 \^_^/
==========================================
哈哈,这样我就夺取了一个用户名.虽然没有入侵它的服务器,但却也能搞到好的用户名,这总算也不白费了功夫。总结一下,遇到提交表单的时候,我们可以想一下能否修改表单的值来达到管理员所想不到的目的。这也是培养我们观察能力的好方法!:)