记第一次CTF【登陆一下好吗、因缺思汀的绕过、天下武功唯快不破、头有点大、这个看起来有点简单、上传绕过、what a fuck!这是什么鬼东西、看起来有点难】

登陆一下好吗
在这里插入图片描述
http://ctf5.shiyanbar.com/web/wonderkun/web/index.html

万能密码 ‘=’
在这里插入图片描述

出来了
在这里插入图片描述

万能密码 ‘=’ 原理

一般用户在登陆时,系统会要求输入用户名及密码,然后将这些数据传输到指定页,进行验证,大致的代码如下:

Set Conn= Server.CreateObject(“ADODB.Connection”) '定义连接数据库的对象
Const AccessFile=“jmdcw.mdb” '数据库地址
Conn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(AccessFile) '连接到数据库
Conn.Open ‘打开数据库

name=request(“name”) ‘得到所提交的用户名
pass=request(“pass”) ‘得到所提交来的密码

Set Jmdcw=Server.CreateObject(“ADODB.RecordSet”) ‘定义操作数据库的对象
SQL="SELECT username,userpass FROM User WHERE username=’"&name&"’ AND userpass=’"&pass&"’" 'SQL语句
Jmdcw.Open SQL,Conn,1,1 '执行查询

If Jmdcw.EOF AND Jmdcw.BOF Then '如果没有查询到
response.redirect “onerror.html” '显示错误页
end if
'如果正确,就继续执行。

以上就是一段简单的用户验证代码,当注入漏洞被广泛发掘之后,类似这样的漏洞就越来越少了,但少并不表示程序员在写代码时已经具备了防范意识,无意之中还是会出现这样或那样的漏洞。OK,书归正传,先来测试一下上面的代码。输入的用户名是:jmdcw,密码是:123456。(典型的弱口令密码,哈哈),这样SQL语句就是:

select username,userpass from user where username=‘jmdcw’ and userpass=‘123456’
程序会查询user表中是否有jmdcw用户,并且该用户的密码是否为123456。如果username=‘jmdcw’的结果为真,userpass=‘123456’的结果也为真,那么“真 And 真 ”的结果就是真,验证通过。
当然,如果用户名和密码其中之一的结果为假,“真 And 假 ”的结果就是假,当然“ 假 And 假 ”的结果也是假,呵呵。
没有用户名或密码怎么进入?试一下’or’’

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值