• 飘零网络验证商业版3和金盾版1.5研究中


    先占个位置:

    飘零网络验证采用 易语言客户端和asp服务端(access|sqlserver2000)的架构

    网上有两位已经对飘零网络验证系统做了研究

    其一:通过eval的方式注册帐号,并控制服务器,我测试了,没成功,可能我对拿站不懂

    其二:通过脱壳,debug,对易语言的客户端进行了破解,达到不去服务器验证

    我的方法和他们有点区别,研究还在进行中......欢迎大家一起讨论,需要资料的,可以直接联系我。

    12.23进展,飘零数据包传输加密方式过于简单,很容易拿到数据包的加密密码。而且还能成功操作数据库。

    格式化后的piao7.asp   

    <%@LANGUAGE="VBSCRIPT"%>
    <%
      dim csmi,mdb,sfqczx,qjsjbz,qxbz,daan,ymgg,cjmm,zcsjjg
      mdb="# piaosydata  #.mdb"    '数据库路径
      csmi = "19910122"       '这里设置密码,要以管理端和客户端相同,要以这种格式长度不限,只能是数字,前后不能为零
      sfqczx = "1"            '这里是设置用户非法退出时是否要自动清除在线,1 为要  2为不要,用模块开发别的软件则填写2
      ymgg = "欢迎使用飘零网络验证商业版"    '访问该文件时的信息。
      qxbz= "piao8"           '用户自定义 随意字符 请自行修改!
      daan= "pl8"             '用户自定义 随意字符 请自行修改!
      cjmm= "piaoling"        '获取管理权限的超级密码。非常重要。。
      zcsjjg =1               '注册时间间隔,单位为分钟。。
      qjsjbz = "{[good-piao]}"
    %>
    <% if rose(request.Form("p")) = "1" then %>
    <%
      ling=dosql()
      ling=now() & qjsjbz & ling
      ling=wen(ling)
    %>
    <% = ling %>
    <% elseif rose(request.Form("p")) = "2" then %>
    <%
      piao= getstr()
      if session(qxbz) <> daan and UBound(split(piao,"々☆")) >2 then
        piao = "2"
      end if
      piao= now() & qjsjbz & piao
      piao= wen(piao)
    %>
    <% = piao %>
    <% elseif rose(request.Form("p")) = "3" then %>
    <% = wen(plfhq(rose(request.Form("f")))) %>
    <% elseif rose(request.Form("p")) = "4" then %>
    <%
      pzd8 = rose(request.Form("pzdm"))
      if sfqczx="1" and pzd8 = "" then
        plzx()
      end if
      pdrose=pdsql(pzd8)
      pdrose=now() & qjsjbz & pdrose
      pdrose=wen(pdrose)
    %>
    <% = pdrose %>
    <% elseif rose(request.Form("p")) = "5" then %>
    <%
      plpo=plfp(rose(request.Form("us")),rose(request.Form("mi")),ys(request.Form("m5i")))
      plpo=now() & qjsjbz & plpo
      plpo=wen(plpo)
    %>
    <% = plpo %>
    <% elseif rose(request.Form("p")) = "6" then %>
    <%
      pldong=pldt(rose(request.Form("u3")),rose(request.Form("m3")),ys(request.Form("s3")))
      pldong=now() & qjsjbz & pldong
      pldong=wen(pldong)
    %>
    <% = pldong %>
    <% elseif rose(request.Form("p")) = "7" then %>
    <%
      plglsq=plsq(rose(request.Form("u7")),rose(request.Form("m7")),ys(request.Form("c7")))
      plglsq=now() & qjsjbz & plglsq
      plglsq=wen(plglsq)
    %>
    <% = plglsq %>
    <% elseif ys(request.Form("p")) = "8" then %>
    <%
      plysdb = plBackupDB()
      plysdb = now() & qjsjbz & plysdb
      plysdb = wen(plysdb)
    %>
    <% = plysdb %>
    <% else %>
    <% = ymgg & wen("-1") %>
    <% end if %>
    <%
      Function getstr()
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next 
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then 
          getstr="1"  '数据库不存在
          conn.close
          set conn = Nothing
          exit Function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi = getpdqx(ys(request.Form("post")))
        rs.Open sqi, conn, 3
        if err then 
          getstr="2"  'SQL语句出错
          rs.close
          conn.close
          Set rs = Nothing 
          set conn = Nothing
          exit Function
        end if
        rs.MoveFirst
        For Each varItem In rs.Fields 
          getstr = getstr & varItem.name & "々"
        Next 
        getstr = getstr & "☆" 
        Do While NOT rs.EOF
          For Each varItem In rs.Fields 
            getstr = getstr & varItem.value & "々" 
          Next 
          getstr = getstr & "☆" 
          rs.MoveNext 
        Loop 
        rs.close
        conn.close
        Set rs = Nothing 
        set conn = Nothing
      End Function
    %>
    <%
      Function dosql()
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next 
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then 
          dosql="1"   '数据库不存在
          conn.close
          set conn = Nothing
          exit Function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi = dopdqx(ys(request.Form("post")))
        rs.Open sqi, conn, 3
        if err then 
          dosql="2"   'SQL语句出错
          rs.close
          conn.close
          Set rs = Nothing 
          set conn = Nothing
          exit Function
        end if
        rs.close
        conn.close
        Set rs = Nothing 
        set conn = Nothing
        dosql = 6
      End Function
    %>
    <%
      Function pdsql(pzd)
      set conn = Server.CreateObject("ADODB.Connection")
      on error resume next 
      conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
      if err then 
        pdsql="1"  '数据库不存在
        conn.close
        set conn=nothing
        exit function
      end if
      set rs = Server.CreateObject("ADODB.Recordset")
      sqi=getpdqx(ys(request.Form("post")))
      rs.open sqi,conn,1,1
      if err then 
        pdsql="2"  'SQL语句出错
        rs.close
        conn.close
        set rs=nothing
        set conn=nothing
        exit Function
      end if
      if rs.bof and rs.eof then
        rs.close
        conn.close
        set rs=nothing
        set conn=nothing
        pdsql="no"
        exit Function
      else
        if pzd <> "" Then
          pdsql1=rs(pzd)
          rs.close
          conn.close
          set rs=nothing
          set conn=nothing
          pdsql = pdsql1
        else
          rs.close
          conn.close
          set rs=nothing
          set conn=nothing
          pdsql="ok"
        end if
      end if
      end Function
    %>
    <%
      Function ys(w)
        dim fen,shi,shu
        fen=split(rose(w),"{[good-rose]}")
        shi=formatdatetime(fen(0),0)
        if datediff("s",shi,time()) < 90 then 
          shu=fen(1)
        Else
          shu="3"  '命令超时
        end if
        ys=shu
      End Function
    %>
    <%
      Function wen(a)
        dim q, fe, fq, shu, tioe
        fe = 1
        for q = 1 to len(a)
          fq = cint(mid(csmi,fe,1))+1
          shu =hex(asc(mid(a,q,1)) xor fq)
          if len(shu)=4 then
            tioe=tioe & cstr(shu)
          else
            tioe=tioe & "00" & cstr(shu)
          end if
          if fe < len(csmi) Then
            fe = fe + 1
          Else
            fe=1
          End If
        next
        wen=tioe
      End Function
    %>
    <%
      function rose(x)
        dim  xun, disc, ism
        xun=1
        for i=1 to len(x) step 4
          ism=cint(mid(csmi,xun,1))+1
          disc=disc & chr(int("&H" & mid(x,i,4))xor ism)
          if xun < len(csmi) Then
            xun=xun + 1
          else
            xun=1
          end if
        next
        rose=disc
      end function
    %>
    <%
      function plzx()
        dim fen,shi,shu,miao,zong
        fen=split(time(),":")
        shi=fen(0)*60*60
        shu=fen(1)*60
        miao=fen(2)
        zong=shi+shu+miao
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next 
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        set rs=createobject("ADODB.recordset")
        if err then 
          rs.Close
          Set rs = Nothing 
          conn.Close
          set conn = Nothing
          exit Function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi = "update admin set zaixian=2 where "&zong&"- jubing > 305 or jubing -"&zong&" > 305"
        rs.Open sqi,conn,1,3
        if err then 
          rs.Close
          Set rs = Nothing 
          conn.Close
          set conn = Nothing
          exit Function
        end if
        rs.Close
        Set rs = Nothing 
        conn.Close
        set conn = Nothing
        plzx = 0
      End Function
    %>
    <%
      Function plfp(u,m,m5)
        dim dqi,tez,mos
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then
          plfp="|1|"  '数据库不存在
          conn.close
          set conn=nothing
          exit function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqp="select * from safe where ip='" & u & "' and lx='3'"
        rs.open sqp,conn,1,1
        if rs.bof and rs.eof then
          rs.Close
        sql="select * from sys where gongneng='md5' and zhuangtai='" & m5 & "'"
        rs.open sql,conn,1,1
        if rs.bof and rs.eof then
          rs.Close
          conn.Close
          set rs=nothing
          set conn=nothing
          plfp="|2|"  'md5错误
        else
          rs.Close
          sqk="select * from admin where use='" & u & "' and pass='" & m & "'"
          rs.open sqk,conn,1,1
          if rs.bof and rs.eof then
             rs.Close
             conn.Close
             set rs=nothing
             set conn=nothing
             plfp="|3|"  '账号密码错误
          else
           dqi=rs("daoqi")
           rs.Close
           sqlm="select * from sys where gongneng='moshi'"
           rs.open sqlm,conn,1,1
           if rs.bof and rs.eof then
               rs.close
               conn.close
               set rs=nothing
               set conn=nothing
               plfp="|6|"  '读取模式错误
            else
             mos=rs("zhuangtai")
             rs.close
             if mos="1" or mos="4" then
              if datediff("s",dqi,now()) > 0 then
               rs.Close
               conn.Close
               set rs=nothing
               set conn=nothing
               plfp="|4|"  '账号过期
              exit function
              end if
             end if
            sqly="select * from sys where gongneng='tzsj'"
            rs.open sqly,conn,1,1
            if rs.bof and rs.eof then
             rs.close
             conn.close
             set rs=nothing
             set conn=nothing
             plfp="|5|"  '特征数据不存在
            else
             tez=rs("zhuangtai")
             rs.close
             conn.close
             set rs=nothing
             set conn=nothing
             plfp=tez
             end if 
            end if
          end if
        end if
        else
          rs.Close
          conn.Close
          set rs=nothing
          set conn=nothing
          plfp=now()
        end if
      end function
    %>
    <%
      Function pldt(u2,m2,s2)
        dim dqi, tez
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next 
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then 
          pldt="|1|"  '数据库不存在
          conn.close
          set conn=nothing
          exit function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi="select * from sys where gongneng='dtyz' and zhuangtai='1'"
        rs.open sqi,conn,1,1
        if rs.bof and rs.eof then
          rs.Close
          conn.Close
          set rs=nothing
          set conn=nothing
          pldt="|2|"  '未开启动态验证
        else
          rs.Close
          sqk="select * from admin where use='" & u2 & "' and pass='" & m2 & "'"
          rs.open sqk,conn,1,1
          if rs.bof and rs.eof then
             rs.Close
             conn.Close
             set rs=nothing
             set conn=nothing
             pldt="|3|"  '账号密码错误
          else
            rs.Close
            conn.close
            set rs=nothing
            set conn=nothing
            pldt=s2
          end if
        end if
      end function
    %>
    <%
      Function plfhq(f2)
        IPString = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
        If IPString = "" Then
          IPString = Request.ServerVariables("REMOTE_ADDR")
        End If
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then 
          plfhq="1"  '数据库不存在
          conn.close
          set conn=nothing
          exit function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi="select * from safe where ip='" & IPString & "' and lx='1'"
        rs.open sqi,conn,1,1
        if rs.bof and rs.eof then
          rs.Close
          sqk="select * from safe where ip='" & f2 & "' and lx='2'"
          rs.open sqk,conn,1,1
          if rs.bof and rs.eof then
            rs.Close
            conn.Close
            set rs=nothing
            set conn=nothing
            plfhq=now() & qjsjbz & IPString
          else
            rs.Close
            conn.Close
            set rs=nothing
            set conn=nothing
            plfhq="11"  '机器码被封
          end if
        else
          rs.Close
          conn.close
          set rs=nothing
          set conn=nothing
          plfhq="12"  'IP被封
        end if
      end function
    %>
    <%
      Function plsq(u8,m8,c8)
        if c8 <> cjmm Then
          session(qxbz) = ""
          plsq="no"
          exit function
        end if
        set conn = Server.CreateObject("ADODB.Connection")
        on error resume next
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb)
        if err then
        plsq="1"  '数据库不存在
        conn.close
        set conn=nothing
        exit function
        end if
        set rs = Server.CreateObject("ADODB.Recordset")
        sqi="select * from list where use='" & u8 & "' and pass='" & m8 & "' and zt='1'"
        rs.open sqi,conn,1,1
        if rs.bof and rs.eof then
          rs.Close
          conn.Close
          set rs=nothing
          set conn=nothing
          session(qxbz) = ""
          plsq="no"
        else
          rs.Close
          conn.Close
          set rs=nothing
          set conn=nothing
          session(qxbz) = daan
          plsq="ok"
        end if
      end function
    %>
    <%
      Function dopdqx(ssj)
        if session(qxbz) = daan then
          dopdqx=ssj
        Else
          If Instr(LCase(ssj),LCase("delete"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("select"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("conn"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("safe"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("sys"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("list"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("insert into data"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("id<"))<>0 or Instr(LCase(ssj),LCase(">id"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("id>"))<>0 or Instr(LCase(ssj),LCase("<id"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("=id"))<>0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("id="))<>0 and Instr(LCase(ssj),LCase("ypid='"))=0 Then
            dopdqx="2"
          elseif Instr(LCase(ssj),LCase("update"))<>0 and Instr(LCase(ssj),LCase("where"))=0 Then
            dopdqx="2"
          elseif plcookies(ssj)=2 Then
            dopdqx="2"
          Else
          dopdqx=ssj
          end if
        end if
      End Function
    %>
    <%
      Function getpdqx(ssg)
        if session(qxbz) = daan then
        getpdqx=ssg
        Else
          If Instr(LCase(ssg),LCase("select"))=0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("select count"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("select top"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("list"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("safe"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("delete"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("update"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("insert"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("id<"))<>0 or Instr(LCase(ssg),LCase(">id"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("id>"))<>0 or Instr(LCase(ssg),LCase("<id"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("=id"))<>0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("id="))<>0 and Instr(LCase(ssg),LCase("ypid='"))=0 Then
            getpdqx="2"
          elseif Instr(LCase(ssg),LCase("gongneng='tzsj'"))<>0 Then
            getpdqx="2"
          Else
            getpdqx=ssg
          end if
        end if
      End Function
    %>
    <%
      Function plBackupDB()
        Dim fso, Engine, strDBPath,dbpath
        if session(qxbz) <> daan then
          plBackupDB = "1"
          exit function
        end if
        dbpath = server.mappath(mdb)
        strDBPath = left(dbPath,instrrev(dbpath,"\"))
        Set fso = CreateObject("Scripting.FileSystemObject")
        If fso.FileExists(dbPath) Then
          Set Engine = CreateObject("JRO.JetEngine")
             Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
             "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"
          fso.CopyFile strDBPath & "temp.mdb",dbpath
          fso.DeleteFile(strDBPath & "temp.mdb")
          Set fso = nothing
          Set Engine = nothing
          	plBackupDB = "2"
        Else
        	plBackupDB = "3"
        End If
      End Function
    %>
    <%
      Function plcookies(sjck)
        if Instr(LCase(sjck),LCase("insert"))<>0 Then
          response.cookies("plcooktis").expires = date()+7
          if request.cookies("plcooktis") ="" Then
            response.cookies("plcooktis")=now() + zcsjjg / 24 / 60
            plcookies=1
          Else
            if CDate(request.cookies("plcooktis")) > now() Then
              plcookies=2
            Else
              response.cookies("plcooktis")=now() + zcsjjg / 24 / 60
              plcookies=1
            End If
          End If
        Else
          plcookies=1
        End If
      End Function
    %>
    

      

  • 相关阅读:
    layui穿梭框内容溢出解决办法
    location之alias浅析
    Semaphore和SemaphoreSlim实现并发同步
    Barrier实现并发同步
    CountdownEvent实现并发同步
    AutoResetEvent实现并发同步
    TrieTree树
    EncryptByPassPhrase与DecryptByPassPhrase的浅说
    一个mp4转gif的网站
    vue轮播图(可随父元素高宽自适应)
  • 原文地址:https://www.cnblogs.com/xewnwsl2001/p/2823601.html
Copyright © 2020-2023  润新知